diff --git a/docs/API_docs/methods/account_changePhone.md b/docs/API_docs/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/docs/API_docs/methods/account_changePhone.md
+++ b/docs/API_docs/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/docs/API_docs/methods/account_checkUsername.md b/docs/API_docs/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/docs/API_docs/methods/account_checkUsername.md
+++ b/docs/API_docs/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/docs/API_docs/methods/account_confirmPhone.md b/docs/API_docs/methods/account_confirmPhone.md
index b730c2dc..c114cd20 100644
--- a/docs/API_docs/methods/account_confirmPhone.md
+++ b/docs/API_docs/methods/account_confirmPhone.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = account.confirmPhone({phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_HASH_INVALID|Code hash invalid|
-|PHONE_CODE_EMPTY|phone_code is missing|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_HASH_INVALID|Code hash invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
diff --git a/docs/API_docs/methods/account_getNotifySettings.md b/docs/API_docs/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/docs/API_docs/methods/account_getNotifySettings.md
+++ b/docs/API_docs/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/docs/API_docs/methods/account_getPasswordSettings.md b/docs/API_docs/methods/account_getPasswordSettings.md
index 8ebb78ee..e41c6b67 100644
--- a/docs/API_docs/methods/account_getPasswordSettings.md
+++ b/docs/API_docs/methods/account_getPasswordSettings.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+Get the current 2FA settings
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password|[InputCheckPasswordSRP](../types/InputCheckPasswordSRP.md) | You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [account\_PasswordSettings](../types/account_PasswordSettings.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$account_PasswordSettings = $MadelineProto->account->getPasswordSettings(['password' => InputCheckPasswordSRP, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+account_PasswordSettings = account.getPasswordSettings({password=InputCheckPasswordSRP, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/docs/API_docs/methods/account_getPrivacy.md b/docs/API_docs/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/docs/API_docs/methods/account_getPrivacy.md
+++ b/docs/API_docs/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/docs/API_docs/methods/account_getTmpPassword.md b/docs/API_docs/methods/account_getTmpPassword.md
index 3a29d97a..0ae4061f 100644
--- a/docs/API_docs/methods/account_getTmpPassword.md
+++ b/docs/API_docs/methods/account_getTmpPassword.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
account_TmpPassword = account.getTmpPassword({password=InputCheckPasswordSRP, period=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_HASH_INVALID|The provided password hash is invalid|
-|TMP_PASSWORD_DISABLED|The temporary password is disabled|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
+|400|TMP_PASSWORD_DISABLED|The temporary password is disabled|
diff --git a/docs/API_docs/methods/account_registerDevice.md b/docs/API_docs/methods/account_registerDevice.md
index 7e39dee0..549f1272 100644
--- a/docs/API_docs/methods/account_registerDevice.md
+++ b/docs/API_docs/methods/account_registerDevice.md
@@ -47,10 +47,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({no_muted=Bool, token_type=int, token='string', app_sandbox=Bool, secret='bytes', other_uids={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/docs/API_docs/methods/account_reportPeer.md b/docs/API_docs/methods/account_reportPeer.md
index a203c900..87b080eb 100644
--- a/docs/API_docs/methods/account_reportPeer.md
+++ b/docs/API_docs/methods/account_reportPeer.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.reportPeer({peer=InputPeer, reason=ReportReason, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/docs/API_docs/methods/account_resetAuthorization.md b/docs/API_docs/methods/account_resetAuthorization.md
index c950992c..e8e8ecc4 100644
--- a/docs/API_docs/methods/account_resetAuthorization.md
+++ b/docs/API_docs/methods/account_resetAuthorization.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.resetAuthorization({hash=long, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/docs/API_docs/methods/account_sendChangePhoneCode.md b/docs/API_docs/methods/account_sendChangePhoneCode.md
index 3a0923f8..26375a94 100644
--- a/docs/API_docs/methods/account_sendChangePhoneCode.md
+++ b/docs/API_docs/methods/account_sendChangePhoneCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendChangePhoneCode({phone_number='string', settings=CodeSettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/docs/API_docs/methods/account_sendConfirmPhoneCode.md b/docs/API_docs/methods/account_sendConfirmPhoneCode.md
index 02896f84..426b70b8 100644
--- a/docs/API_docs/methods/account_sendConfirmPhoneCode.md
+++ b/docs/API_docs/methods/account_sendConfirmPhoneCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendConfirmPhoneCode({hash='string', settings=CodeSettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/docs/API_docs/methods/account_setAccountTTL.md b/docs/API_docs/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/docs/API_docs/methods/account_setAccountTTL.md
+++ b/docs/API_docs/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/docs/API_docs/methods/account_setPrivacy.md b/docs/API_docs/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/docs/API_docs/methods/account_setPrivacy.md
+++ b/docs/API_docs/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/docs/API_docs/methods/account_unregisterDevice.md b/docs/API_docs/methods/account_unregisterDevice.md
index 13d11e88..e39f0811 100644
--- a/docs/API_docs/methods/account_unregisterDevice.md
+++ b/docs/API_docs/methods/account_unregisterDevice.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', other_uids={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/docs/API_docs/methods/account_updateNotifySettings.md b/docs/API_docs/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/docs/API_docs/methods/account_updateNotifySettings.md
+++ b/docs/API_docs/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/docs/API_docs/methods/account_updatePasswordSettings.md b/docs/API_docs/methods/account_updatePasswordSettings.md
index 80f27228..7afb81ea 100644
--- a/docs/API_docs/methods/account_updatePasswordSettings.md
+++ b/docs/API_docs/methods/account_updatePasswordSettings.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password|[InputCheckPasswordSRP](../types/InputCheckPasswordSRP.md) | You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|new\_settings|[account\_PasswordInputSettings](../types/account_PasswordInputSettings.md) | New 2FA settings | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->account->updatePasswordSettings(['password' => InputCheckPasswordSRP, 'new_settings' => account_PasswordInputSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = account.updatePasswordSettings({password=InputCheckPasswordSRP, new_settings=account_PasswordInputSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EMAIL_UNCONFIRMED|Email unconfirmed|
+|400|EMAIL_UNCONFIRMED_X|The provided email isn't confirmed, X is the length of the verification code that was just sent to the email.|
+|400|NEW_SALT_INVALID|The new salt is invalid|
+|400|NEW_SETTINGS_INVALID|The new settings are invalid|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/docs/API_docs/methods/account_updateProfile.md b/docs/API_docs/methods/account_updateProfile.md
index af5b6a0f..0d74c5e5 100644
--- a/docs/API_docs/methods/account_updateProfile.md
+++ b/docs/API_docs/methods/account_updateProfile.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/docs/API_docs/methods/account_updateStatus.md b/docs/API_docs/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/docs/API_docs/methods/account_updateStatus.md
+++ b/docs/API_docs/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/docs/API_docs/methods/account_updateUsername.md b/docs/API_docs/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/docs/API_docs/methods/account_updateUsername.md
+++ b/docs/API_docs/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/docs/API_docs/methods/auth_bindTempAuthKey.md b/docs/API_docs/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/docs/API_docs/methods/auth_bindTempAuthKey.md
+++ b/docs/API_docs/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/docs/API_docs/methods/auth_cancelCode.md b/docs/API_docs/methods/auth_cancelCode.md
index fcbd7713..a69e0118 100644
--- a/docs/API_docs/methods/auth_cancelCode.md
+++ b/docs/API_docs/methods/auth_cancelCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = auth.cancelCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/docs/API_docs/methods/auth_checkPassword.md b/docs/API_docs/methods/auth_checkPassword.md
index 8d76c483..ad2a88a2 100644
--- a/docs/API_docs/methods/auth_checkPassword.md
+++ b/docs/API_docs/methods/auth_checkPassword.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password|[InputCheckPasswordSRP](../types/InputCheckPasswordSRP.md) | You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->checkPassword(['password' => InputCheckPasswordSRP, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.checkPassword({password=InputCheckPasswordSRP, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/docs/API_docs/methods/auth_exportAuthorization.md b/docs/API_docs/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/docs/API_docs/methods/auth_exportAuthorization.md
+++ b/docs/API_docs/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/docs/API_docs/methods/auth_importAuthorization.md b/docs/API_docs/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/docs/API_docs/methods/auth_importAuthorization.md
+++ b/docs/API_docs/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/docs/API_docs/methods/auth_importBotAuthorization.md b/docs/API_docs/methods/auth_importBotAuthorization.md
index 1a98c1b9..98a2f8ca 100644
--- a/docs/API_docs/methods/auth_importBotAuthorization.md
+++ b/docs/API_docs/methods/auth_importBotAuthorization.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|api\_id|[int](../types/int.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_hash|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|bot\_auth\_token|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importBotAuthorization(['api_id' => int, 'api_hash' => 'string', 'bot_auth_token' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importBotAuthorization({api_id=int, api_hash='string', bot_auth_token='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ACCESS_TOKEN_EXPIRED|Access token expired|
+|400|ACCESS_TOKEN_INVALID|Access token invalid|
+|400|API_ID_INVALID|API ID invalid|
diff --git a/docs/API_docs/methods/auth_logOut.md b/docs/API_docs/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/docs/API_docs/methods/auth_logOut.md
+++ b/docs/API_docs/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/docs/API_docs/methods/auth_recoverPassword.md b/docs/API_docs/methods/auth_recoverPassword.md
index 83ff5aed..d4bad9c5 100644
--- a/docs/API_docs/methods/auth_recoverPassword.md
+++ b/docs/API_docs/methods/auth_recoverPassword.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
auth_Authorization = auth.recoverPassword({code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_EMPTY|The provided code is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_EMPTY|The provided code is empty|
diff --git a/docs/API_docs/methods/auth_requestPasswordRecovery.md b/docs/API_docs/methods/auth_requestPasswordRecovery.md
index 1864bbb0..b6ad57ba 100644
--- a/docs/API_docs/methods/auth_requestPasswordRecovery.md
+++ b/docs/API_docs/methods/auth_requestPasswordRecovery.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
auth_PasswordRecovery = auth.requestPasswordRecovery({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_EMPTY|The provided password is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_EMPTY|The provided password is empty|
diff --git a/docs/API_docs/methods/auth_resendCode.md b/docs/API_docs/methods/auth_resendCode.md
index ff7868ea..ec730d75 100644
--- a/docs/API_docs/methods/auth_resendCode.md
+++ b/docs/API_docs/methods/auth_resendCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = auth.resendCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/docs/API_docs/methods/auth_resetAuthorizations.md b/docs/API_docs/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/docs/API_docs/methods/auth_resetAuthorizations.md
+++ b/docs/API_docs/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/docs/API_docs/methods/auth_sendCode.md b/docs/API_docs/methods/auth_sendCode.md
index 9afebb55..83dfd500 100644
--- a/docs/API_docs/methods/auth_sendCode.md
+++ b/docs/API_docs/methods/auth_sendCode.md
@@ -7,8 +7,58 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+|settings|[CodeSettings](../types/CodeSettings.md) | You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['phone_number' => 'string', 'api_id' => int, 'api_hash' => 'string', 'settings' => CodeSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({phone_number='string', api_id=int, api_hash='string', settings=CodeSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/docs/API_docs/methods/auth_signIn.md b/docs/API_docs/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/docs/API_docs/methods/auth_signIn.md
+++ b/docs/API_docs/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/docs/API_docs/methods/auth_signUp.md b/docs/API_docs/methods/auth_signUp.md
index 15960145..b6886e69 100644
--- a/docs/API_docs/methods/auth_signUp.md
+++ b/docs/API_docs/methods/auth_signUp.md
@@ -7,8 +7,54 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/docs/API_docs/methods/bots_answerWebhookJSONQuery.md b/docs/API_docs/methods/bots_answerWebhookJSONQuery.md
index ae0fa6d9..f2233514 100644
--- a/docs/API_docs/methods/bots_answerWebhookJSONQuery.md
+++ b/docs/API_docs/methods/bots_answerWebhookJSONQuery.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = bots.answerWebhookJSONQuery({query_id=long, data=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/docs/API_docs/methods/bots_sendCustomRequest.md b/docs/API_docs/methods/bots_sendCustomRequest.md
index c1fd8183..8a6a2df5 100644
--- a/docs/API_docs/methods/bots_sendCustomRequest.md
+++ b/docs/API_docs/methods/bots_sendCustomRequest.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
DataJSON = bots.sendCustomRequest({custom_method='string', params=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/docs/API_docs/methods/channels_checkUsername.md b/docs/API_docs/methods/channels_checkUsername.md
index 483a2f6f..52365d34 100644
--- a/docs/API_docs/methods/channels_checkUsername.md
+++ b/docs/API_docs/methods/channels_checkUsername.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Bool = channels.checkUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/docs/API_docs/methods/channels_createChannel.md b/docs/API_docs/methods/channels_createChannel.md
index 1b34ffcd..9f547934 100644
--- a/docs/API_docs/methods/channels_createChannel.md
+++ b/docs/API_docs/methods/channels_createChannel.md
@@ -47,12 +47,12 @@ Or, if you're into Lua:
Updates = channels.createChannel({broadcast=Bool, megagroup=Bool, title='string', about='string', geo_point=InputGeoPoint, address='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_TITLE_EMPTY|No chat title provided|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
+|406|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/docs/API_docs/methods/channels_deleteChannel.md b/docs/API_docs/methods/channels_deleteChannel.md
index 53a9c23d..1b8d2d48 100644
--- a/docs/API_docs/methods/channels_deleteChannel.md
+++ b/docs/API_docs/methods/channels_deleteChannel.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Updates = channels.deleteChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/docs/API_docs/methods/channels_deleteMessages.md b/docs/API_docs/methods/channels_deleteMessages.md
index f76a9ad1..463ebad0 100644
--- a/docs/API_docs/methods/channels_deleteMessages.md
+++ b/docs/API_docs/methods/channels_deleteMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_AffectedMessages = channels.deleteMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/docs/API_docs/methods/channels_deleteUserHistory.md b/docs/API_docs/methods/channels_deleteUserHistory.md
index 0a4e7d82..33905a7e 100644
--- a/docs/API_docs/methods/channels_deleteUserHistory.md
+++ b/docs/API_docs/methods/channels_deleteUserHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedHistory = channels.deleteUserHistory({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/docs/API_docs/methods/channels_editAdmin.md b/docs/API_docs/methods/channels_editAdmin.md
index d51157ef..1b2ba5c3 100644
--- a/docs/API_docs/methods/channels_editAdmin.md
+++ b/docs/API_docs/methods/channels_editAdmin.md
@@ -45,19 +45,19 @@ Or, if you're into Lua:
Updates = channels.editAdmin({channel=InputChannel, user_id=InputUser, admin_rights=ChatAdminRights, rank='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ADMINS_TOO_MUCH|There are too many admins|
-|BOT_CHANNELS_NA|Bots can't edit admin privileges|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
-|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ADMINS_TOO_MUCH|There are too many admins|
+|400|BOT_CHANNELS_NA|Bots can't edit admin privileges|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
+|403|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/docs/API_docs/methods/channels_editBanned.md b/docs/API_docs/methods/channels_editBanned.md
index 8b08ed22..b9f1b58a 100644
--- a/docs/API_docs/methods/channels_editBanned.md
+++ b/docs/API_docs/methods/channels_editBanned.md
@@ -44,14 +44,14 @@ Or, if you're into Lua:
Updates = channels.editBanned({channel=InputChannel, user_id=InputUser, banned_rights=ChatBannedRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ADMIN_INVALID|You're not an admin|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ADMIN_INVALID|You're not an admin|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/docs/API_docs/methods/channels_editPhoto.md b/docs/API_docs/methods/channels_editPhoto.md
index bec0ba48..caef32d5 100644
--- a/docs/API_docs/methods/channels_editPhoto.md
+++ b/docs/API_docs/methods/channels_editPhoto.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editPhoto({channel=InputChannel, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|PHOTO_INVALID|Photo invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|PHOTO_INVALID|Photo invalid|
diff --git a/docs/API_docs/methods/channels_editTitle.md b/docs/API_docs/methods/channels_editTitle.md
index b5efeb39..d7cb33da 100644
--- a/docs/API_docs/methods/channels_editTitle.md
+++ b/docs/API_docs/methods/channels_editTitle.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editTitle({channel=InputChannel, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/docs/API_docs/methods/channels_exportMessageLink.md b/docs/API_docs/methods/channels_exportMessageLink.md
index 5dea54a7..fc2f248b 100644
--- a/docs/API_docs/methods/channels_exportMessageLink.md
+++ b/docs/API_docs/methods/channels_exportMessageLink.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
ExportedMessageLink = channels.exportMessageLink({channel=InputChannel, id=int, grouped=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/docs/API_docs/methods/channels_getAdminLog.md b/docs/API_docs/methods/channels_getAdminLog.md
index 377c7320..adb87748 100644
--- a/docs/API_docs/methods/channels_getAdminLog.md
+++ b/docs/API_docs/methods/channels_getAdminLog.md
@@ -48,12 +48,12 @@ Or, if you're into Lua:
channels_AdminLogResults = channels.getAdminLog({channel=InputChannel, q='string', events_filter=ChannelAdminLogEventsFilter, admins={InputUser}, max_id=long, min_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/docs/API_docs/methods/channels_getChannels.md b/docs/API_docs/methods/channels_getChannels.md
index 78d50641..95d7a188 100644
--- a/docs/API_docs/methods/channels_getChannels.md
+++ b/docs/API_docs/methods/channels_getChannels.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = channels.getChannels({id={InputChannel}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/docs/API_docs/methods/channels_getFullChannel.md b/docs/API_docs/methods/channels_getFullChannel.md
index 45a8ec72..ebd53de4 100644
--- a/docs/API_docs/methods/channels_getFullChannel.md
+++ b/docs/API_docs/methods/channels_getFullChannel.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->channels->getFullChannel(['channel' => InputChannel, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = channels.getFullChannel({channel=InputChannel, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/docs/API_docs/methods/channels_getLeftChannels.md b/docs/API_docs/methods/channels_getLeftChannels.md
index 2d256964..fac7ae07 100644
--- a/docs/API_docs/methods/channels_getLeftChannels.md
+++ b/docs/API_docs/methods/channels_getLeftChannels.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_Chats = channels.getLeftChannels({offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TAKEOUT_REQUIRED|A takeout session has to be initialized, first|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|TAKEOUT_REQUIRED|A takeout session has to be initialized, first|
diff --git a/docs/API_docs/methods/channels_getMessages.md b/docs/API_docs/methods/channels_getMessages.md
index 90cf5a47..f1ae0a4d 100644
--- a/docs/API_docs/methods/channels_getMessages.md
+++ b/docs/API_docs/methods/channels_getMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_Messages = channels.getMessages({channel=InputChannel, id={InputMessage}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
diff --git a/docs/API_docs/methods/channels_getParticipant.md b/docs/API_docs/methods/channels_getParticipant.md
index 6633114f..808156fd 100644
--- a/docs/API_docs/methods/channels_getParticipant.md
+++ b/docs/API_docs/methods/channels_getParticipant.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
channels_ChannelParticipant = channels.getParticipant({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/docs/API_docs/methods/channels_getParticipants.md b/docs/API_docs/methods/channels_getParticipants.md
index 5ff242e6..fb7a39df 100644
--- a/docs/API_docs/methods/channels_getParticipants.md
+++ b/docs/API_docs/methods/channels_getParticipants.md
@@ -46,14 +46,14 @@ Or, if you're into Lua:
channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, filter=ChannelParticipantsFilter, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/docs/API_docs/methods/channels_inviteToChannel.md b/docs/API_docs/methods/channels_inviteToChannel.md
index f7093f13..d8c5e88a 100644
--- a/docs/API_docs/methods/channels_inviteToChannel.md
+++ b/docs/API_docs/methods/channels_inviteToChannel.md
@@ -43,25 +43,25 @@ Or, if you're into Lua:
Updates = channels.inviteToChannel({channel=InputChannel, users={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
-|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_BLOCKED|User blocked|
-|USER_BOT|Bots can only be admins in channels.|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_KICKED|This user was kicked from this supergroup/channel|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
+|400|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_BLOCKED|User blocked|
+|400|USER_BOT|Bots can only be admins in channels.|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_KICKED|This user was kicked from this supergroup/channel|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/docs/API_docs/methods/channels_joinChannel.md b/docs/API_docs/methods/channels_joinChannel.md
index b056031a..a4a7c177 100644
--- a/docs/API_docs/methods/channels_joinChannel.md
+++ b/docs/API_docs/methods/channels_joinChannel.md
@@ -42,15 +42,15 @@ Or, if you're into Lua:
Updates = channels.joinChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
diff --git a/docs/API_docs/methods/channels_leaveChannel.md b/docs/API_docs/methods/channels_leaveChannel.md
index fdea13ba..6538d443 100644
--- a/docs/API_docs/methods/channels_leaveChannel.md
+++ b/docs/API_docs/methods/channels_leaveChannel.md
@@ -42,14 +42,14 @@ Or, if you're into Lua:
Updates = channels.leaveChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
-|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
diff --git a/docs/API_docs/methods/channels_readHistory.md b/docs/API_docs/methods/channels_readHistory.md
index 93dc075f..3532dae0 100644
--- a/docs/API_docs/methods/channels_readHistory.md
+++ b/docs/API_docs/methods/channels_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readHistory({channel=InputChannel, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/docs/API_docs/methods/channels_readMessageContents.md b/docs/API_docs/methods/channels_readMessageContents.md
index 80ddf2b0..8cd8c620 100644
--- a/docs/API_docs/methods/channels_readMessageContents.md
+++ b/docs/API_docs/methods/channels_readMessageContents.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readMessageContents({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/docs/API_docs/methods/channels_reportSpam.md b/docs/API_docs/methods/channels_reportSpam.md
index db80676a..7e273cc5 100644
--- a/docs/API_docs/methods/channels_reportSpam.md
+++ b/docs/API_docs/methods/channels_reportSpam.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
Bool = channels.reportSpam({channel=InputChannel, user_id=InputUser, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
diff --git a/docs/API_docs/methods/channels_setStickers.md b/docs/API_docs/methods/channels_setStickers.md
index 10cd68bf..c9b95527 100644
--- a/docs/API_docs/methods/channels_setStickers.md
+++ b/docs/API_docs/methods/channels_setStickers.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.setStickers({channel=InputChannel, stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PARTICIPANTS_TOO_FEW|Not enough participants|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PARTICIPANTS_TOO_FEW|Not enough participants|
diff --git a/docs/API_docs/methods/channels_toggleSignatures.md b/docs/API_docs/methods/channels_toggleSignatures.md
index cdfc0fda..f8624946 100644
--- a/docs/API_docs/methods/channels_toggleSignatures.md
+++ b/docs/API_docs/methods/channels_toggleSignatures.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = channels.toggleSignatures({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/docs/API_docs/methods/channels_updateUsername.md b/docs/API_docs/methods/channels_updateUsername.md
index 677712f9..48d250e6 100644
--- a/docs/API_docs/methods/channels_updateUsername.md
+++ b/docs/API_docs/methods/channels_updateUsername.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Bool = channels.updateUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_OCCUPIED|The provided username is already occupied|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
diff --git a/docs/API_docs/methods/contacts_addContact.md b/docs/API_docs/methods/contacts_addContact.md
index 0d5aae8c..80f540bb 100644
--- a/docs/API_docs/methods/contacts_addContact.md
+++ b/docs/API_docs/methods/contacts_addContact.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
Updates = contacts.addContact({add_phone_privacy_exception=Bool, id=InputUser, first_name='string', last_name='string', phone='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/docs/API_docs/methods/contacts_block.md b/docs/API_docs/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/docs/API_docs/methods/contacts_block.md
+++ b/docs/API_docs/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/docs/API_docs/methods/contacts_deleteContacts.md b/docs/API_docs/methods/contacts_deleteContacts.md
index b4f47c1b..007fd8d4 100644
--- a/docs/API_docs/methods/contacts_deleteContacts.md
+++ b/docs/API_docs/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Updates = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/docs/API_docs/methods/contacts_getStatuses.md b/docs/API_docs/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/docs/API_docs/methods/contacts_getStatuses.md
+++ b/docs/API_docs/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/docs/API_docs/methods/contacts_getTopPeers.md b/docs/API_docs/methods/contacts_getTopPeers.md
index 586fb99e..8c307877 100644
--- a/docs/API_docs/methods/contacts_getTopPeers.md
+++ b/docs/API_docs/methods/contacts_getTopPeers.md
@@ -52,10 +52,10 @@ Or, if you're into Lua:
contacts_TopPeers = contacts.getTopPeers({correspondents=Bool, bots_pm=Bool, bots_inline=Bool, phone_calls=Bool, forward_users=Bool, forward_chats=Bool, groups=Bool, channels=Bool, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TYPES_EMPTY|No top peer type was provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TYPES_EMPTY|No top peer type was provided|
diff --git a/docs/API_docs/methods/contacts_resetTopPeerRating.md b/docs/API_docs/methods/contacts_resetTopPeerRating.md
index 43cf1685..787be177 100644
--- a/docs/API_docs/methods/contacts_resetTopPeerRating.md
+++ b/docs/API_docs/methods/contacts_resetTopPeerRating.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = contacts.resetTopPeerRating({category=TopPeerCategory, peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/docs/API_docs/methods/contacts_resolveUsername.md b/docs/API_docs/methods/contacts_resolveUsername.md
index fab56bb1..68f709db 100644
--- a/docs/API_docs/methods/contacts_resolveUsername.md
+++ b/docs/API_docs/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [contacts\_ResolvedPeer](../types/contacts_ResolvedPeer.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$contacts_ResolvedPeer = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+contacts_ResolvedPeer = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/docs/API_docs/methods/contacts_search.md b/docs/API_docs/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/docs/API_docs/methods/contacts_search.md
+++ b/docs/API_docs/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/docs/API_docs/methods/contacts_unblock.md b/docs/API_docs/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/docs/API_docs/methods/contacts_unblock.md
+++ b/docs/API_docs/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/docs/API_docs/methods/folders_editPeerFolders.md b/docs/API_docs/methods/folders_editPeerFolders.md
index f4884643..28c8db40 100644
--- a/docs/API_docs/methods/folders_editPeerFolders.md
+++ b/docs/API_docs/methods/folders_editPeerFolders.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Updates = folders.editPeerFolders({folder_peers={InputFolderPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FOLDER_ID_INVALID|Invalid folder ID|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FOLDER_ID_INVALID|Invalid folder ID|
diff --git a/docs/API_docs/methods/help_getCdnConfig.md b/docs/API_docs/methods/help_getCdnConfig.md
index 9e047a1d..ba526365 100644
--- a/docs/API_docs/methods/help_getCdnConfig.md
+++ b/docs/API_docs/methods/help_getCdnConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
CdnConfig = help.getCdnConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/docs/API_docs/methods/help_getConfig.md b/docs/API_docs/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/docs/API_docs/methods/help_getConfig.md
+++ b/docs/API_docs/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/docs/API_docs/methods/index.md b/docs/API_docs/methods/index.md
index 39e06ae7..657b2299 100644
--- a/docs/API_docs/methods/index.md
+++ b/docs/API_docs/methods/index.md
@@ -30,549 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Accept URL authorization: messages.acceptUrlAuth
-
-* Accept contact: contacts.acceptContact
-
-* Accept telegram passport authorization: account.acceptAuthorization
-
-* Accept telegram's TOS: help.acceptTermsOfService
-
-* Add a sticker set: messages.installStickerSet
-
-* Add a sticker to favorites: messages.faveSticker
-
-* Add a sticker to recent stickers: messages.saveRecentSticker
-
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add contact: contacts.addContact
-
-* Add phone number as contact: contacts.importContacts
-
-* Add sticker to stickerset: stickers.addStickerToSet
-
-* Add users to channel/supergroup: channels.inviteToChannel
-
-* Block a user: contacts.block
-
-* Bots only: get telegram passport authorization form: account.getAuthorizationForm
-
-* Bots only: send payment form: payments.sendPaymentForm
-
-* Bots only: set precheckout results: messages.setBotPrecheckoutResults
-
-* Bots only: set shipping results: messages.setBotShippingResults
-
-* Bots only: set the callback answer (after a button was clicked): messages.setBotCallbackAnswer
-
-* Bots only: set the results of an inline query: messages.setInlineBotResults
-
-* Call inline bot: messages.getInlineBotResults
-
-* Cancel password recovery email: account.cancelPasswordEmail
-
-* Change notification settings: account.updateNotifySettings
-
-* Change sticker position in photo: stickers.changeStickerPosition
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if about to edit a message or a media caption: messages.getMessageEditData
-
-* Check if an invitation link is valid: messages.checkChatInvite
-
-* Check if this username is available: account.checkUsername
-
-* Check if this username is free and can be assigned to a channel/supergroup: channels.checkUsername
-
-* Clear all drafts: messages.clearAllDrafts
-
-* Clear all recent stickers: messages.clearRecentStickers
-
-* Clear saved payments info: payments.clearSavedInfo
-
-* Confirm password recovery using email: account.confirmPasswordEmail
-
-* Confirm this phone number is associated to this account, obtain phone_code_hash from sendConfirmPhoneCode: account.confirmPhone
-
-* Contact signup notification setting value: account.getContactSignUpNotification
-
-* Convert chat to supergroup: messages.migrateChat
-
-* Create a chat (not supergroup): messages.createChat
-
-* Create channel/supergroup: channels.createChannel
-
-* Create stickerset: stickers.createStickerSet
-
-* Delete a certain session: account.resetAuthorization
-
-* Delete a certain telegram web login authorization: account.resetWebAuthorization
-
-* Delete a channel/supergroup: channels.deleteChannel
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete all messages of a user in a channel/supergroup: channels.deleteUserHistory
-
-* Delete all temporary authorization keys except the ones provided: auth.dropTempAuthKeys
-
-* Delete channel/supergroup messages: channels.deleteMessages
-
-* Delete chat history: messages.deleteHistory
-
-* Delete contacts by phones: contacts.deleteByPhones
-
-* Delete folder: folders.deleteFolder
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete secure telegram passport value: account.deleteSecureValue
-
-* Delete the history of a supergroup/channel: channels.deleteHistory
-
-* Delete this account: account.deleteAccount
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Download a file through telegram: upload.getWebFile
-
-* Edit a message: messages.editMessage
-
-* Edit a sent inline message: messages.editInlineBotMessage
-
-* Edit admin permissions of a user in a channel/supergroup: channels.editAdmin
-
-* Edit admin permissions: messages.editChatAdmin
-
-* Edit chat info: messages.editChatAbout
-
-* Edit creator of channel: channels.editCreator
-
-* Edit default rights of chat: messages.editChatDefaultBannedRights
-
-* Edit folder: folders.editPeerFolders
-
-* Edit location (geochats): channels.editLocation
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the photo of a supergroup/channel: channels.editPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Edit the title of a supergroup/channel: channels.editTitle
-
-* Edit user info: help.editUserInfo
-
-* Enable or disable hidden history for new channel/supergroup users: channels.togglePreHistoryHidden
-
-* Export chat invite : messages.exportChatInvite
-
-* Find a sticker set: messages.searchStickerSets
-
-* Finish account exporting session: account.finishTakeoutSession
-
-* Forward messages: messages.forwardMessages
-
-* Get CDN configuration: help.getCdnConfig
-
-* Get a stickerset: messages.getStickerSet
-
-* Get account TTL: account.getAccountTTL
-
-* Get admin log of a channel/supergroup: channels.getAdminLog
-
-* Get all archived stickers: messages.getArchivedStickers
-
-* Get all channels you left: channels.getLeftChannels
-
-* Get all chats (not supergroups or channels): messages.getAllChats
-
-* Get all contacts: contacts.getContacts
-
-* Get all logged-in authorizations: account.getAuthorizations
-
-* Get all message drafts: messages.getAllDrafts
-
-* Get all secure telegram passport values: account.getAllSecureValues
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get all supergroups/channels where you're admin: channels.getAdminedPublicChannels
-
-* Get and increase message views: messages.getMessagesViews
-
-* Get app config: help.getAppConfig
-
-* Get autodownload settings: account.getAutoDownloadSettings
-
-* Get available languages: langpack.getLanguages
-
-* Get blocked users: contacts.getBlocked
-
-* Get call configuration: phone.getCallConfig
-
-* Get channel/supergroup messages: channels.getMessages
-
-* Get channel/supergroup participants (you should use `$MadelineProto->get_pwr_chat($id)` instead): channels.getParticipants
-
-* Get chats in common with a user: messages.getCommonChats
-
-* Get contacts by IDs: contacts.getContactIDs
-
-* Get deep link info: help.getDeepLinkInfo
-
-* Get dialog info of peers: messages.getPeerDialogs
-
-* Get dialogs marked as unread manually: messages.getDialogUnreadMarks
-
-* Get document by SHA256 hash: messages.getDocumentByHash
-
-* Get emoji URL: messages.getEmojiURL
-
-* Get emoji keyword difference: messages.getEmojiKeywordsDifference
-
-* Get emoji keyword languages: messages.getEmojiKeywordsLanguages
-
-* Get emoji keywords: messages.getEmojiKeywords
-
-* Get favorite stickers: messages.getFavedStickers
-
-* Get featured stickers: messages.getFeaturedStickers
-
-* Get groups for discussion: channels.getGroupsForDiscussion
-
-* Get high scores of a game sent in an inline message: messages.getInlineGameHighScores
-
-* Get high scores of a game: messages.getGameHighScores
-
-* Get info about a certain channel/supergroup participant: channels.getParticipant
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about multiple channels/supergroups: channels.getChannels
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get information about the current proxy: help.getProxyData
-
-* Get invitation text: help.getInviteText
-
-* Get language pack strings: langpack.getStrings
-
-* Get language pack updates: langpack.getDifference
-
-* Get language pack: langpack.getLangPack
-
-* Get language: langpack.getLanguage
-
-* Get masks: messages.getMaskStickers
-
-* Get message ranges to fetch: messages.getSplitRanges
-
-* Get messages: messages.getMessages
-
-* Get most used chats: contacts.getTopPeers
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification exceptions: account.getNotifyExceptions
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get online users: messages.getOnlines
-
-* Get passport config: help.getPassportConfig
-
-* Get payment form: payments.getPaymentForm
-
-* Get payment receipt: payments.getPaymentReceipt
-
-* Get people nearby (geochats): contacts.getLocated
-
-* Get pinned dialogs: messages.getPinnedDialogs
-
-* Get poll results: messages.getPollResults
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get recent locations: messages.getRecentLocations
-
-* Get recent stickers: messages.getRecentStickers
-
-* Get recent t.me URLs: help.getRecentMeUrls
-
-* Get saved contacts: contacts.getSaved
-
-* Get saved gifs: messages.getSavedGifs
-
-* Get saved payments info: payments.getSavedInfo
-
-* Get search counter: messages.getSearchCounters
-
-* Get secure value for telegram passport: account.getSecureValue
-
-* Get server configuration: help.getConfig
-
-* Get stats URL: messages.getStatsURL
-
-* Get stickers attachable to images: messages.getAttachedStickers
-
-* Get stickers: messages.getStickers
-
-* Get support name: help.getSupportName
-
-* Get telegram web login authorizations: account.getWebAuthorizations
-
-* Get temporary password for buying products through bots: account.getTmpPassword
-
-* Get the callback answer of a bot (after clicking a button): messages.getBotCallbackAnswer
-
-* Get the changelog of this app: help.getAppChangelog
-
-* Get the current password: account.getPassword
-
-* Get the link of a message in a channel: channels.exportMessageLink
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Get the settings of apeer: messages.getPeerSettings
-
-* Get unread mentions: messages.getUnreadMentions
-
-* Get updated TOS: help.getTermsOfServiceUpdate
-
-* Get user info: help.getUserInfo
-
-* Get wallpaper info: account.getWallPaper
-
-* Get webpage preview: messages.getWebPage
-
-* Get webpage preview: messages.getWebPagePreview
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Global message search: messages.searchGlobal
-
-* Hide peer settings bar: messages.hidePeerSettingsBar
-
-* Import chat invite: messages.importChatInvite
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Install wallpaper: account.installWallPaper
-
-* Invalidate sent phone code: auth.cancelCode
-
-* Invoke method from takeout session: invokeWithTakeout
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invoke with messages range: invokeWithMessagesRange
-
-* Invoke with method without returning updates in the socket: invokeWithoutUpdates
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Join a channel/supergroup: channels.joinChannel
-
-* Kick or ban a user from a channel/supergroup: channels.editBanned
-
-* Leave a channel/supergroup: channels.leaveChannel
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark channel/supergroup history as read: channels.readHistory
-
-* Mark channel/supergroup messages as read: channels.readMessageContents
-
-* Mark dialog as unread : messages.markDialogUnread
-
-* Mark mentions as read: messages.readMentions
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Mark new featured stickers as read: messages.readFeaturedStickers
-
-* Notify server that you received a call (server will refuse all incoming calls until the current call is over): phone.receivedCall
-
-* Pin or unpin dialog: messages.toggleDialogPin
-
-* Register device for push notifications: account.registerDevice
-
-* Remove a sticker set: messages.uninstallStickerSet
-
-* Remove sticker from stickerset: stickers.removeStickerFromSet
-
-* Reorder pinned dialogs: messages.reorderPinnedDialogs
-
-* Reorder sticker sets: messages.reorderStickerSets
-
-* Report a message in a supergroup/channel for spam: channels.reportSpam
-
-* Report a message: messages.report
-
-* Report a peer for spam: messages.reportSpam
-
-* Report for spam a secret chat: messages.reportEncryptedSpam
-
-* Report for spam: account.reportPeer
-
-* Request URL authorization: messages.requestUrlAuth
-
-* Resend password recovery email: account.resendPasswordEmail
-
-* Resend the SMS verification code: auth.resendCode
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Reset all telegram web login authorizations: account.resetWebAuthorizations
-
-* Reset saved contacts: contacts.resetSaved
-
-* Reset top peer rating for a certain category/peer: contacts.resetTopPeerRating
-
-* Reset wallpapers: account.resetWallPapers
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Save a GIF: messages.saveGif
-
-* Save a message draft: messages.saveDraft
-
-* Save autodownload settings: account.saveAutoDownloadSettings
-
-* Save call debugging info: phone.saveCallDebug
-
-* Save telegram passport secure value: account.saveSecureValue
-
-* Save wallpaper: account.saveWallPaper
-
-* Search contacts: contacts.search
-
-* Search gifs: messages.searchGifs
-
-* Search peers or messages: messages.search
-
-* Send a custom request to the bot API: bots.sendCustomRequest
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send an album: messages.sendMultiMedia
-
-* Send an email to recover the 2FA password: auth.requestPasswordRecovery
-
-* Send confirmation phone code: account.sendConfirmPhoneCode
-
-* Send email verification code: account.sendVerifyEmailCode
-
-* Send inline bot result obtained with messages.getInlineBotResults to the chat: messages.sendInlineBotResult
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send phone verification code: account.sendVerifyPhoneCode
-
-* Send screenshot notification: messages.sendScreenshotNotification
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Send vote: messages.sendVote
-
-* Send webhook request via bot API: bots.answerWebhookJSONQuery
-
-* Set account TTL: account.setAccountTTL
-
-* Set contact sign up notification: account.setContactSignUpNotification
-
-* Set discussion group of channel: channels.setDiscussionGroup
-
-* Set phone call rating: phone.setCallRating
-
-* Set privacy settings: account.setPrivacy
-
-* Set secure value error for telegram passport: users.setSecureValueErrors
-
-* Set the game score of an inline message: messages.setInlineGameScore
-
-* Set the game score: messages.setGameScore
-
-* Set the supergroup/channel stickerpack: channels.setStickers
-
-* Set the update status of webhook: help.setBotUpdatesStatus
-
-* Start a bot: messages.startBot
-
-* Start account exporting session: account.initTakeoutSession
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Toggle channel signatures: channels.toggleSignatures
-
-* Toggle slow mode: channels.toggleSlowMode
-
-* Toggle top peers: contacts.toggleTopPeers
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update pinned message: messages.updatePinnedMessage
-
-* Update profile info: account.updateProfile
-
-* Update the username of a supergroup/channel: channels.updateUsername
-
-* Update this user's username: account.updateUsername
-
-* Upload a file without sending it to anyone: messages.uploadMedia
-
-* Upload a secret chat file without sending it to anyone: messages.uploadEncryptedFile
-
-* Upload profile photo: photos.uploadProfilePhoto
-
-* Upload wallpaper: account.uploadWallPaper
-
-* Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
-
-* Validate requested payment info: payments.validateRequestedInfo
-
-* Verify email address: account.verifyEmail
-
-* Verify phone number: account.verifyPhone
-
diff --git a/docs/API_docs/methods/initConnection.md b/docs/API_docs/methods/initConnection.md
index 69d29401..5c4bfab9 100644
--- a/docs/API_docs/methods/initConnection.md
+++ b/docs/API_docs/methods/initConnection.md
@@ -50,11 +50,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', system_lang_code='string', lang_pack='string', lang_code='string', proxy=InputClientProxy, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/docs/API_docs/methods/invokeWithLayer.md b/docs/API_docs/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/docs/API_docs/methods/invokeWithLayer.md
+++ b/docs/API_docs/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/docs/API_docs/methods/langpack_getDifference.md b/docs/API_docs/methods/langpack_getDifference.md
index 712d88f4..6995c17d 100644
--- a/docs/API_docs/methods/langpack_getDifference.md
+++ b/docs/API_docs/methods/langpack_getDifference.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getDifference({lang_pack='string', lang_code='string', from_version=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/docs/API_docs/methods/langpack_getLangPack.md b/docs/API_docs/methods/langpack_getLangPack.md
index 55d30529..d2280670 100644
--- a/docs/API_docs/methods/langpack_getLangPack.md
+++ b/docs/API_docs/methods/langpack_getLangPack.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getLangPack({lang_pack='string', lang_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/docs/API_docs/methods/langpack_getLanguages.md b/docs/API_docs/methods/langpack_getLanguages.md
index d4b9734e..686a50f5 100644
--- a/docs/API_docs/methods/langpack_getLanguages.md
+++ b/docs/API_docs/methods/langpack_getLanguages.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Vector_of_LangPackLanguage = langpack.getLanguages({lang_pack='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/docs/API_docs/methods/langpack_getStrings.md b/docs/API_docs/methods/langpack_getStrings.md
index 65f65dfc..f0463eed 100644
--- a/docs/API_docs/methods/langpack_getStrings.md
+++ b/docs/API_docs/methods/langpack_getStrings.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Vector_of_LangPackString = langpack.getStrings({lang_pack='string', lang_code='string', keys={'string'}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/docs/API_docs/methods/messages_acceptEncryption.md b/docs/API_docs/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/docs/API_docs/methods/messages_acceptEncryption.md
+++ b/docs/API_docs/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/docs/API_docs/methods/messages_addChatUser.md b/docs/API_docs/methods/messages_addChatUser.md
index bc0d6253..b5e164b2 100644
--- a/docs/API_docs/methods/messages_addChatUser.md
+++ b/docs/API_docs/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
Updates = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/docs/API_docs/methods/messages_checkChatInvite.md b/docs/API_docs/methods/messages_checkChatInvite.md
index de28b09b..0d13d55e 100644
--- a/docs/API_docs/methods/messages_checkChatInvite.md
+++ b/docs/API_docs/methods/messages_checkChatInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ChatInvite = messages.checkChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
diff --git a/docs/API_docs/methods/messages_createChat.md b/docs/API_docs/methods/messages_createChat.md
index 8f6e9672..b2623f1d 100644
--- a/docs/API_docs/methods/messages_createChat.md
+++ b/docs/API_docs/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/docs/API_docs/methods/messages_deleteChatUser.md b/docs/API_docs/methods/messages_deleteChatUser.md
index 63529571..11b9b220 100644
--- a/docs/API_docs/methods/messages_deleteChatUser.md
+++ b/docs/API_docs/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/docs/API_docs/methods/messages_deleteHistory.md b/docs/API_docs/methods/messages_deleteHistory.md
index faddfda5..5a38e404 100644
--- a/docs/API_docs/methods/messages_deleteHistory.md
+++ b/docs/API_docs/methods/messages_deleteHistory.md
@@ -45,10 +45,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({just_clear=Bool, revoke=Bool, peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/docs/API_docs/methods/messages_deleteMessages.md b/docs/API_docs/methods/messages_deleteMessages.md
index 4c65080a..41517dd0 100644
--- a/docs/API_docs/methods/messages_deleteMessages.md
+++ b/docs/API_docs/methods/messages_deleteMessages.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.deleteMessages({revoke=Bool, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/docs/API_docs/methods/messages_discardEncryption.md b/docs/API_docs/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/docs/API_docs/methods/messages_discardEncryption.md
+++ b/docs/API_docs/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/docs/API_docs/methods/messages_editChatAbout.md b/docs/API_docs/methods/messages_editChatAbout.md
index 6c562c12..05fff24f 100644
--- a/docs/API_docs/methods/messages_editChatAbout.md
+++ b/docs/API_docs/methods/messages_editChatAbout.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.editChatAbout({peer=InputPeer, about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/docs/API_docs/methods/messages_editChatAdmin.md b/docs/API_docs/methods/messages_editChatAdmin.md
index 2b4dc94c..6f6c1376 100644
--- a/docs/API_docs/methods/messages_editChatAdmin.md
+++ b/docs/API_docs/methods/messages_editChatAdmin.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.editChatAdmin({chat_id=InputPeer, user_id=InputUser, is_admin=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/docs/API_docs/methods/messages_editChatDefaultBannedRights.md b/docs/API_docs/methods/messages_editChatDefaultBannedRights.md
index 30e7836e..a8e075eb 100644
--- a/docs/API_docs/methods/messages_editChatDefaultBannedRights.md
+++ b/docs/API_docs/methods/messages_editChatDefaultBannedRights.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatDefaultBannedRights({peer=InputPeer, banned_rights=ChatBannedRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BANNED_RIGHTS_INVALID|You provided some invalid flags in the banned rights|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BANNED_RIGHTS_INVALID|You provided some invalid flags in the banned rights|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/docs/API_docs/methods/messages_editChatPhoto.md b/docs/API_docs/methods/messages_editChatPhoto.md
index 2a82c232..a21a03b9 100644
--- a/docs/API_docs/methods/messages_editChatPhoto.md
+++ b/docs/API_docs/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Updates = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/docs/API_docs/methods/messages_editChatTitle.md b/docs/API_docs/methods/messages_editChatTitle.md
index 2c338ad6..72f78741 100644
--- a/docs/API_docs/methods/messages_editChatTitle.md
+++ b/docs/API_docs/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/docs/API_docs/methods/messages_editInlineBotMessage.md b/docs/API_docs/methods/messages_editInlineBotMessage.md
index 67313f15..5f7a31c9 100644
--- a/docs/API_docs/methods/messages_editInlineBotMessage.md
+++ b/docs/API_docs/methods/messages_editInlineBotMessage.md
@@ -96,11 +96,11 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
diff --git a/docs/API_docs/methods/messages_editMessage.md b/docs/API_docs/methods/messages_editMessage.md
index 720f4285..d394d1aa 100644
--- a/docs/API_docs/methods/messages_editMessage.md
+++ b/docs/API_docs/methods/messages_editMessage.md
@@ -97,20 +97,20 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/docs/API_docs/methods/messages_exportChatInvite.md b/docs/API_docs/methods/messages_exportChatInvite.md
index 9028d4cd..c78d7fb9 100644
--- a/docs/API_docs/methods/messages_exportChatInvite.md
+++ b/docs/API_docs/methods/messages_exportChatInvite.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
ExportedChatInvite = messages.exportChatInvite({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/docs/API_docs/methods/messages_faveSticker.md b/docs/API_docs/methods/messages_faveSticker.md
index a8b1ab56..9f9f423d 100644
--- a/docs/API_docs/methods/messages_faveSticker.md
+++ b/docs/API_docs/methods/messages_faveSticker.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.faveSticker({id=InputDocument, unfave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/docs/API_docs/methods/messages_forwardMessages.md b/docs/API_docs/methods/messages_forwardMessages.md
index d2453d05..743fa7a6 100644
--- a/docs/API_docs/methods/messages_forwardMessages.md
+++ b/docs/API_docs/methods/messages_forwardMessages.md
@@ -48,29 +48,29 @@ Or, if you're into Lua:
Updates = messages.forwardMessages({silent=Bool, background=Bool, with_my_score=Bool, grouped=Bool, from_peer=InputPeer, id={int}, to_peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/docs/API_docs/methods/messages_getBotCallbackAnswer.md b/docs/API_docs/methods/messages_getBotCallbackAnswer.md
index f97fa5b0..3f8cc23b 100644
--- a/docs/API_docs/methods/messages_getBotCallbackAnswer.md
+++ b/docs/API_docs/methods/messages_getBotCallbackAnswer.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
messages_BotCallbackAnswer = messages.getBotCallbackAnswer({game=Bool, peer=InputPeer, msg_id=int, data='bytes', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/docs/API_docs/methods/messages_getChats.md b/docs/API_docs/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/docs/API_docs/methods/messages_getChats.md
+++ b/docs/API_docs/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/docs/API_docs/methods/messages_getCommonChats.md b/docs/API_docs/methods/messages_getCommonChats.md
index 9470a0ee..cff23c3f 100644
--- a/docs/API_docs/methods/messages_getCommonChats.md
+++ b/docs/API_docs/methods/messages_getCommonChats.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_Chats = messages.getCommonChats({user_id=InputUser, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/docs/API_docs/methods/messages_getDhConfig.md b/docs/API_docs/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/docs/API_docs/methods/messages_getDhConfig.md
+++ b/docs/API_docs/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/docs/API_docs/methods/messages_getDialogs.md b/docs/API_docs/methods/messages_getDialogs.md
index 7e6b77a6..d6bcd23d 100644
--- a/docs/API_docs/methods/messages_getDialogs.md
+++ b/docs/API_docs/methods/messages_getDialogs.md
@@ -48,13 +48,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({exclude_pinned=Bool, folder_id=int, offset_date=int, offset_id=int, offset_peer=InputPeer, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/docs/API_docs/methods/messages_getDocumentByHash.md b/docs/API_docs/methods/messages_getDocumentByHash.md
index 73a235d5..06469c52 100644
--- a/docs/API_docs/methods/messages_getDocumentByHash.md
+++ b/docs/API_docs/methods/messages_getDocumentByHash.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Document = messages.getDocumentByHash({sha256='bytes', size=int, mime_type='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
diff --git a/docs/API_docs/methods/messages_getFullChat.md b/docs/API_docs/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/docs/API_docs/methods/messages_getFullChat.md
+++ b/docs/API_docs/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/docs/API_docs/methods/messages_getGameHighScores.md b/docs/API_docs/methods/messages_getGameHighScores.md
index 249e1d09..5c484bbb 100644
--- a/docs/API_docs/methods/messages_getGameHighScores.md
+++ b/docs/API_docs/methods/messages_getGameHighScores.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
messages_HighScores = messages.getGameHighScores({peer=InputPeer, id=int, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/docs/API_docs/methods/messages_getHistory.md b/docs/API_docs/methods/messages_getHistory.md
index d623a61e..a0389d7b 100644
--- a/docs/API_docs/methods/messages_getHistory.md
+++ b/docs/API_docs/methods/messages_getHistory.md
@@ -49,16 +49,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset_id=int, offset_date=int, add_offset=int, limit=int, max_id=int, min_id=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/docs/API_docs/methods/messages_getInlineBotResults.md b/docs/API_docs/methods/messages_getInlineBotResults.md
index 1efcb412..17d678b7 100644
--- a/docs/API_docs/methods/messages_getInlineBotResults.md
+++ b/docs/API_docs/methods/messages_getInlineBotResults.md
@@ -46,13 +46,13 @@ Or, if you're into Lua:
messages_BotResults = messages.getInlineBotResults({bot=InputUser, peer=InputPeer, geo_point=InputGeoPoint, query='string', offset='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
-|BOT_INVALID|This is not a valid bot|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
+|400|BOT_INVALID|This is not a valid bot|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|-503|Timeout|Timeout while fetching data|
diff --git a/docs/API_docs/methods/messages_getInlineGameHighScores.md b/docs/API_docs/methods/messages_getInlineGameHighScores.md
index e68c6db8..ac33b6b8 100644
--- a/docs/API_docs/methods/messages_getInlineGameHighScores.md
+++ b/docs/API_docs/methods/messages_getInlineGameHighScores.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_HighScores = messages.getInlineGameHighScores({id=InputBotInlineMessageID, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/docs/API_docs/methods/messages_getMessageEditData.md b/docs/API_docs/methods/messages_getMessageEditData.md
index 7f1b7164..b907d78c 100644
--- a/docs/API_docs/methods/messages_getMessageEditData.md
+++ b/docs/API_docs/methods/messages_getMessageEditData.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_MessageEditData = messages.getMessageEditData({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/docs/API_docs/methods/messages_getMessagesViews.md b/docs/API_docs/methods/messages_getMessagesViews.md
index 3d490315..143e568c 100644
--- a/docs/API_docs/methods/messages_getMessagesViews.md
+++ b/docs/API_docs/methods/messages_getMessagesViews.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
Vector_of_int = messages.getMessagesViews({peer=InputPeer, id={int}, increment=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/docs/API_docs/methods/messages_getPeerDialogs.md b/docs/API_docs/methods/messages_getPeerDialogs.md
index 02eb9b43..17e0d11e 100644
--- a/docs/API_docs/methods/messages_getPeerDialogs.md
+++ b/docs/API_docs/methods/messages_getPeerDialogs.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPeerDialogs({peers={InputDialogPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/docs/API_docs/methods/messages_getPeerSettings.md b/docs/API_docs/methods/messages_getPeerSettings.md
index 26dafb9b..69032ff5 100644
--- a/docs/API_docs/methods/messages_getPeerSettings.md
+++ b/docs/API_docs/methods/messages_getPeerSettings.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
PeerSettings = messages.getPeerSettings({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/docs/API_docs/methods/messages_getPinnedDialogs.md b/docs/API_docs/methods/messages_getPinnedDialogs.md
index 8d23e4fa..7fbfecd0 100644
--- a/docs/API_docs/methods/messages_getPinnedDialogs.md
+++ b/docs/API_docs/methods/messages_getPinnedDialogs.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPinnedDialogs({folder_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FOLDER_ID_INVALID|Invalid folder ID|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FOLDER_ID_INVALID|Invalid folder ID|
diff --git a/docs/API_docs/methods/messages_getStatsURL.md b/docs/API_docs/methods/messages_getStatsURL.md
index 4f7c08d9..f0c44447 100644
--- a/docs/API_docs/methods/messages_getStatsURL.md
+++ b/docs/API_docs/methods/messages_getStatsURL.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
StatsURL = messages.getStatsURL({dark=Bool, peer=InputPeer, params='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/docs/API_docs/methods/messages_getStickerSet.md b/docs/API_docs/methods/messages_getStickerSet.md
index 57bce84d..487316cc 100644
--- a/docs/API_docs/methods/messages_getStickerSet.md
+++ b/docs/API_docs/methods/messages_getStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_StickerSet = messages.getStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/docs/API_docs/methods/messages_getUnreadMentions.md b/docs/API_docs/methods/messages_getUnreadMentions.md
index 1fa1f269..923229eb 100644
--- a/docs/API_docs/methods/messages_getUnreadMentions.md
+++ b/docs/API_docs/methods/messages_getUnreadMentions.md
@@ -47,10 +47,10 @@ Or, if you're into Lua:
messages_Messages = messages.getUnreadMentions({peer=InputPeer, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/docs/API_docs/methods/messages_getWebPage.md b/docs/API_docs/methods/messages_getWebPage.md
index ce51ff41..63ef5e93 100644
--- a/docs/API_docs/methods/messages_getWebPage.md
+++ b/docs/API_docs/methods/messages_getWebPage.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
WebPage = messages.getWebPage({url='string', hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|WC_CONVERT_URL_INVALID|WC convert URL invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|WC_CONVERT_URL_INVALID|WC convert URL invalid|
diff --git a/docs/API_docs/methods/messages_importChatInvite.md b/docs/API_docs/methods/messages_importChatInvite.md
index 12120867..101b4b19 100644
--- a/docs/API_docs/methods/messages_importChatInvite.md
+++ b/docs/API_docs/methods/messages_importChatInvite.md
@@ -42,16 +42,16 @@ Or, if you're into Lua:
Updates = messages.importChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/docs/API_docs/methods/messages_installStickerSet.md b/docs/API_docs/methods/messages_installStickerSet.md
index 21a57a85..67f2aca0 100644
--- a/docs/API_docs/methods/messages_installStickerSet.md
+++ b/docs/API_docs/methods/messages_installStickerSet.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_StickerSetInstallResult = messages.installStickerSet({stickerset=InputStickerSet, archived=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/docs/API_docs/methods/messages_migrateChat.md b/docs/API_docs/methods/messages_migrateChat.md
index a72f4c11..ee4010eb 100644
--- a/docs/API_docs/methods/messages_migrateChat.md
+++ b/docs/API_docs/methods/messages_migrateChat.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
Updates = messages.migrateChat({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/docs/API_docs/methods/messages_readEncryptedHistory.md b/docs/API_docs/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/docs/API_docs/methods/messages_readEncryptedHistory.md
+++ b/docs/API_docs/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/docs/API_docs/methods/messages_readHistory.md b/docs/API_docs/methods/messages_readHistory.md
index 2ad5cd09..a7f0eca7 100644
--- a/docs/API_docs/methods/messages_readHistory.md
+++ b/docs/API_docs/methods/messages_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.readHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/docs/API_docs/methods/messages_receivedQueue.md b/docs/API_docs/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/docs/API_docs/methods/messages_receivedQueue.md
+++ b/docs/API_docs/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/docs/API_docs/methods/messages_reorderPinnedDialogs.md b/docs/API_docs/methods/messages_reorderPinnedDialogs.md
index 70482817..d83341a6 100644
--- a/docs/API_docs/methods/messages_reorderPinnedDialogs.md
+++ b/docs/API_docs/methods/messages_reorderPinnedDialogs.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.reorderPinnedDialogs({force=Bool, folder_id=int, order={InputDialogPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/docs/API_docs/methods/messages_reportEncryptedSpam.md b/docs/API_docs/methods/messages_reportEncryptedSpam.md
index 9b1e868b..aeac27ef 100644
--- a/docs/API_docs/methods/messages_reportEncryptedSpam.md
+++ b/docs/API_docs/methods/messages_reportEncryptedSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportEncryptedSpam({peer=InputEncryptedChat, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/docs/API_docs/methods/messages_reportSpam.md b/docs/API_docs/methods/messages_reportSpam.md
index e92fba13..dc256e55 100644
--- a/docs/API_docs/methods/messages_reportSpam.md
+++ b/docs/API_docs/methods/messages_reportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/docs/API_docs/methods/messages_requestEncryption.md b/docs/API_docs/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/docs/API_docs/methods/messages_requestEncryption.md
+++ b/docs/API_docs/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/docs/API_docs/methods/messages_saveDraft.md b/docs/API_docs/methods/messages_saveDraft.md
index 791ce234..ea6d407e 100644
--- a/docs/API_docs/methods/messages_saveDraft.md
+++ b/docs/API_docs/methods/messages_saveDraft.md
@@ -89,10 +89,10 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/docs/API_docs/methods/messages_saveGif.md b/docs/API_docs/methods/messages_saveGif.md
index f504ff9e..010e17ec 100644
--- a/docs/API_docs/methods/messages_saveGif.md
+++ b/docs/API_docs/methods/messages_saveGif.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.saveGif({id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|GIF_ID_INVALID|The provided GIF ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|GIF_ID_INVALID|The provided GIF ID is invalid|
diff --git a/docs/API_docs/methods/messages_saveRecentSticker.md b/docs/API_docs/methods/messages_saveRecentSticker.md
index 98c74efd..072b6fe9 100644
--- a/docs/API_docs/methods/messages_saveRecentSticker.md
+++ b/docs/API_docs/methods/messages_saveRecentSticker.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.saveRecentSticker({attached=Bool, id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/docs/API_docs/methods/messages_search.md b/docs/API_docs/methods/messages_search.md
index 83cb34c6..07529b40 100644
--- a/docs/API_docs/methods/messages_search.md
+++ b/docs/API_docs/methods/messages_search.md
@@ -53,16 +53,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({peer=InputPeer, q='string', from_id=InputUser, filter=MessagesFilter, min_date=int, max_date=int, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/docs/API_docs/methods/messages_searchGifs.md b/docs/API_docs/methods/messages_searchGifs.md
index 7be4173b..1602d35e 100644
--- a/docs/API_docs/methods/messages_searchGifs.md
+++ b/docs/API_docs/methods/messages_searchGifs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_FoundGifs = messages.searchGifs({q='string', offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/docs/API_docs/methods/messages_searchGlobal.md b/docs/API_docs/methods/messages_searchGlobal.md
index 8b87dcf3..a07e21e8 100644
--- a/docs/API_docs/methods/messages_searchGlobal.md
+++ b/docs/API_docs/methods/messages_searchGlobal.md
@@ -47,10 +47,10 @@ Or, if you're into Lua:
messages_Messages = messages.searchGlobal({folder_id=int, q='string', offset_rate=int, offset_peer=InputPeer, offset_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/docs/API_docs/methods/messages_sendEncrypted.md b/docs/API_docs/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/docs/API_docs/methods/messages_sendEncrypted.md
+++ b/docs/API_docs/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/docs/API_docs/methods/messages_sendEncryptedFile.md b/docs/API_docs/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/docs/API_docs/methods/messages_sendEncryptedFile.md
+++ b/docs/API_docs/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/docs/API_docs/methods/messages_sendEncryptedService.md b/docs/API_docs/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/docs/API_docs/methods/messages_sendEncryptedService.md
+++ b/docs/API_docs/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/docs/API_docs/methods/messages_sendInlineBotResult.md b/docs/API_docs/methods/messages_sendInlineBotResult.md
index 96d7571a..642ba34f 100644
--- a/docs/API_docs/methods/messages_sendInlineBotResult.md
+++ b/docs/API_docs/methods/messages_sendInlineBotResult.md
@@ -49,15 +49,15 @@ Or, if you're into Lua:
Updates = messages.sendInlineBotResult({silent=Bool, background=Bool, clear_draft=Bool, hide_via=Bool, peer=InputPeer, reply_to_msg_id=int, query_id=long, id='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INLINE_RESULT_EXPIRED|The inline query expired|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|QUERY_ID_EMPTY|The query ID is empty|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INLINE_RESULT_EXPIRED|The inline query expired|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|QUERY_ID_EMPTY|The query ID is empty|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/docs/API_docs/methods/messages_sendMedia.md b/docs/API_docs/methods/messages_sendMedia.md
index 44c604c6..a2244583 100644
--- a/docs/API_docs/methods/messages_sendMedia.md
+++ b/docs/API_docs/methods/messages_sendMedia.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/docs/API_docs/methods/messages_sendMessage.md b/docs/API_docs/methods/messages_sendMessage.md
index 5641ebc3..e0ab305d 100644
--- a/docs/API_docs/methods/messages_sendMessage.md
+++ b/docs/API_docs/methods/messages_sendMessage.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/docs/API_docs/methods/messages_sendMultiMedia.md b/docs/API_docs/methods/messages_sendMultiMedia.md
index 9ebdcb88..5684a6d2 100644
--- a/docs/API_docs/methods/messages_sendMultiMedia.md
+++ b/docs/API_docs/methods/messages_sendMultiMedia.md
@@ -47,11 +47,11 @@ Or, if you're into Lua:
Updates = messages.sendMultiMedia({silent=Bool, background=Bool, clear_draft=Bool, peer=InputPeer, reply_to_msg_id=int, multi_media={InputSingleMedia}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/docs/API_docs/methods/messages_sendScreenshotNotification.md b/docs/API_docs/methods/messages_sendScreenshotNotification.md
index 3f5bb36d..4e4e40f5 100644
--- a/docs/API_docs/methods/messages_sendScreenshotNotification.md
+++ b/docs/API_docs/methods/messages_sendScreenshotNotification.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = messages.sendScreenshotNotification({peer=InputPeer, reply_to_msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/docs/API_docs/methods/messages_setBotCallbackAnswer.md b/docs/API_docs/methods/messages_setBotCallbackAnswer.md
index ed058b4f..630ca61c 100644
--- a/docs/API_docs/methods/messages_setBotCallbackAnswer.md
+++ b/docs/API_docs/methods/messages_setBotCallbackAnswer.md
@@ -52,11 +52,11 @@ Bool = messages.setBotCallbackAnswer({alert=Bool, query_id=long, message='string
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|URL_INVALID|Invalid URL provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|URL_INVALID|Invalid URL provided|
diff --git a/docs/API_docs/methods/messages_setBotPrecheckoutResults.md b/docs/API_docs/methods/messages_setBotPrecheckoutResults.md
index cc615123..d6e0e61b 100644
--- a/docs/API_docs/methods/messages_setBotPrecheckoutResults.md
+++ b/docs/API_docs/methods/messages_setBotPrecheckoutResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotPrecheckoutResults({success=Bool, query_id=long, error='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ERROR_TEXT_EMPTY|The provided error message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ERROR_TEXT_EMPTY|The provided error message is empty|
diff --git a/docs/API_docs/methods/messages_setBotShippingResults.md b/docs/API_docs/methods/messages_setBotShippingResults.md
index f3a86f4f..adc4f64f 100644
--- a/docs/API_docs/methods/messages_setBotShippingResults.md
+++ b/docs/API_docs/methods/messages_setBotShippingResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotShippingResults({query_id=long, error='string', shipping_options={ShippingOption}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
diff --git a/docs/API_docs/methods/messages_setEncryptedTyping.md b/docs/API_docs/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/docs/API_docs/methods/messages_setEncryptedTyping.md
+++ b/docs/API_docs/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/docs/API_docs/methods/messages_setGameScore.md b/docs/API_docs/methods/messages_setGameScore.md
index 548ee889..429b04c6 100644
--- a/docs/API_docs/methods/messages_setGameScore.md
+++ b/docs/API_docs/methods/messages_setGameScore.md
@@ -47,12 +47,12 @@ Or, if you're into Lua:
Updates = messages.setGameScore({edit_message=Bool, force=Bool, peer=InputPeer, id=int, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/docs/API_docs/methods/messages_setInlineBotResults.md b/docs/API_docs/methods/messages_setInlineBotResults.md
index ab388e39..df4c30d4 100644
--- a/docs/API_docs/methods/messages_setInlineBotResults.md
+++ b/docs/API_docs/methods/messages_setInlineBotResults.md
@@ -48,23 +48,23 @@ Or, if you're into Lua:
Bool = messages.setInlineBotResults({gallery=Bool, private=Bool, query_id=long, results={InputBotInlineResult}, cache_time=int, next_offset='string', switch_pm=InlineBotSwitchPM, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ARTICLE_TITLE_EMPTY|The title of the article is empty|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|PHOTO_INVALID|Photo invalid|
-|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
-|QUERY_ID_INVALID|The query ID is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|RESULT_TYPE_INVALID|Result type invalid|
-|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
-|START_PARAM_INVALID|Start parameter invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ARTICLE_TITLE_EMPTY|The title of the article is empty|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|PHOTO_INVALID|Photo invalid|
+|400|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|RESULT_TYPE_INVALID|Result type invalid|
+|400|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
+|400|START_PARAM_INVALID|Start parameter invalid|
+|403|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/docs/API_docs/methods/messages_setInlineGameScore.md b/docs/API_docs/methods/messages_setInlineGameScore.md
index 5eeb1540..62b163d5 100644
--- a/docs/API_docs/methods/messages_setInlineGameScore.md
+++ b/docs/API_docs/methods/messages_setInlineGameScore.md
@@ -46,11 +46,11 @@ Or, if you're into Lua:
Bool = messages.setInlineGameScore({edit_message=Bool, force=Bool, id=InputBotInlineMessageID, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/docs/API_docs/methods/messages_setTyping.md b/docs/API_docs/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/docs/API_docs/methods/messages_setTyping.md
+++ b/docs/API_docs/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/docs/API_docs/methods/messages_startBot.md b/docs/API_docs/methods/messages_startBot.md
index aa2b2d00..4bf12aa6 100644
--- a/docs/API_docs/methods/messages_startBot.md
+++ b/docs/API_docs/methods/messages_startBot.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = messages.startBot({bot=InputUser, peer=InputPeer, start_param='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INVALID|This is not a valid bot|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|START_PARAM_EMPTY|The start parameter is empty|
-|START_PARAM_INVALID|Start parameter invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INVALID|This is not a valid bot|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|START_PARAM_EMPTY|The start parameter is empty|
+|400|START_PARAM_INVALID|Start parameter invalid|
diff --git a/docs/API_docs/methods/messages_toggleDialogPin.md b/docs/API_docs/methods/messages_toggleDialogPin.md
index 22c6d15d..ff46ef21 100644
--- a/docs/API_docs/methods/messages_toggleDialogPin.md
+++ b/docs/API_docs/methods/messages_toggleDialogPin.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.toggleDialogPin({pinned=Bool, peer=InputDialogPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/docs/API_docs/methods/messages_uninstallStickerSet.md b/docs/API_docs/methods/messages_uninstallStickerSet.md
index 59abc510..6b7a2006 100644
--- a/docs/API_docs/methods/messages_uninstallStickerSet.md
+++ b/docs/API_docs/methods/messages_uninstallStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.uninstallStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/docs/API_docs/methods/messages_uploadMedia.md b/docs/API_docs/methods/messages_uploadMedia.md
index afc806fe..09fc074c 100644
--- a/docs/API_docs/methods/messages_uploadMedia.md
+++ b/docs/API_docs/methods/messages_uploadMedia.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
MessageMedia = messages.uploadMedia({peer=InputPeer, media=InputMedia, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/docs/API_docs/methods/payments_getPaymentForm.md b/docs/API_docs/methods/payments_getPaymentForm.md
index e8e04f37..4c28121f 100644
--- a/docs/API_docs/methods/payments_getPaymentForm.md
+++ b/docs/API_docs/methods/payments_getPaymentForm.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentForm = payments.getPaymentForm({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/docs/API_docs/methods/payments_getPaymentReceipt.md b/docs/API_docs/methods/payments_getPaymentReceipt.md
index acb1c209..0e2f76a8 100644
--- a/docs/API_docs/methods/payments_getPaymentReceipt.md
+++ b/docs/API_docs/methods/payments_getPaymentReceipt.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentReceipt = payments.getPaymentReceipt({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/docs/API_docs/methods/payments_sendPaymentForm.md b/docs/API_docs/methods/payments_sendPaymentForm.md
index b8fa905d..1910ede8 100644
--- a/docs/API_docs/methods/payments_sendPaymentForm.md
+++ b/docs/API_docs/methods/payments_sendPaymentForm.md
@@ -45,10 +45,10 @@ Or, if you're into Lua:
payments_PaymentResult = payments.sendPaymentForm({msg_id=int, requested_info_id='string', shipping_option_id='string', credentials=InputPaymentCredentials, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/docs/API_docs/methods/payments_validateRequestedInfo.md b/docs/API_docs/methods/payments_validateRequestedInfo.md
index 3b9da7e6..f18e1660 100644
--- a/docs/API_docs/methods/payments_validateRequestedInfo.md
+++ b/docs/API_docs/methods/payments_validateRequestedInfo.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
payments_ValidatedRequestedInfo = payments.validateRequestedInfo({save=Bool, msg_id=int, info=PaymentRequestedInfo, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/docs/API_docs/methods/phone_acceptCall.md b/docs/API_docs/methods/phone_acceptCall.md
index b75ac65b..f5c58f01 100644
--- a/docs/API_docs/methods/phone_acceptCall.md
+++ b/docs/API_docs/methods/phone_acceptCall.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->acceptCall(['peer' => InputPhoneCall, 'g_b' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.acceptCall({peer=InputPhoneCall, g_b='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
diff --git a/docs/API_docs/methods/phone_confirmCall.md b/docs/API_docs/methods/phone_confirmCall.md
index 1a75563d..468307cc 100644
--- a/docs/API_docs/methods/phone_confirmCall.md
+++ b/docs/API_docs/methods/phone_confirmCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->confirmCall(['peer' => InputPhoneCall, 'g_a' => 'bytes', 'key_fingerprint' => long, 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.confirmCall({peer=InputPhoneCall, g_a='bytes', key_fingerprint=long, protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/docs/API_docs/methods/phone_discardCall.md b/docs/API_docs/methods/phone_discardCall.md
index e50456eb..b4fec97a 100644
--- a/docs/API_docs/methods/phone_discardCall.md
+++ b/docs/API_docs/methods/phone_discardCall.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|video|[Bool](../types/Bool.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Optional|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|duration|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|reason|[PhoneCallDiscardReason](../types/PhoneCallDiscardReason.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|connection\_id|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [Updates](../types/Updates.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Updates = $MadelineProto->phone->discardCall(['video' => Bool, 'peer' => InputPhoneCall, 'duration' => int, 'reason' => PhoneCallDiscardReason, 'connection_id' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Updates = phone.discardCall({video=Bool, peer=InputPhoneCall, duration=int, reason=PhoneCallDiscardReason, connection_id=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/docs/API_docs/methods/phone_receivedCall.md b/docs/API_docs/methods/phone_receivedCall.md
index c43bc8ac..6091424b 100644
--- a/docs/API_docs/methods/phone_receivedCall.md
+++ b/docs/API_docs/methods/phone_receivedCall.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Bool = phone.receivedCall({peer=InputPhoneCall, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_ALREADY_DECLINED|The call was already declined|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/docs/API_docs/methods/phone_requestCall.md b/docs/API_docs/methods/phone_requestCall.md
index 9b8df564..e3894214 100644
--- a/docs/API_docs/methods/phone_requestCall.md
+++ b/docs/API_docs/methods/phone_requestCall.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|video|[Bool](../types/Bool.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Optional|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Optional|
+|g\_a\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->requestCall(['video' => Bool, 'user_id' => InputUser, 'g_a_hash' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.requestCall({video=Bool, user_id=InputUser, g_a_hash='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
+|400|PARTICIPANT_VERSION_OUTDATED|The other participant does not use an up to date telegram client with support for calls|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|403|USER_IS_BLOCKED|You were blocked by this user|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/docs/API_docs/methods/phone_saveCallDebug.md b/docs/API_docs/methods/phone_saveCallDebug.md
index 8acbc353..1e793c05 100644
--- a/docs/API_docs/methods/phone_saveCallDebug.md
+++ b/docs/API_docs/methods/phone_saveCallDebug.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = phone.saveCallDebug({peer=InputPhoneCall, debug=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
-|DATA_JSON_INVALID|The provided JSON data is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|DATA_JSON_INVALID|The provided JSON data is invalid|
diff --git a/docs/API_docs/methods/phone_setCallRating.md b/docs/API_docs/methods/phone_setCallRating.md
index 5977c943..df40c478 100644
--- a/docs/API_docs/methods/phone_setCallRating.md
+++ b/docs/API_docs/methods/phone_setCallRating.md
@@ -45,10 +45,10 @@ Or, if you're into Lua:
Updates = phone.setCallRating({user_initiative=Bool, peer=InputPhoneCall, rating=int, comment='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/docs/API_docs/methods/photos_getUserPhotos.md b/docs/API_docs/methods/photos_getUserPhotos.md
index 57f5772b..a01f3180 100644
--- a/docs/API_docs/methods/photos_getUserPhotos.md
+++ b/docs/API_docs/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/docs/API_docs/methods/photos_updateProfilePhoto.md b/docs/API_docs/methods/photos_updateProfilePhoto.md
index cca2fe30..f7c91ec6 100644
--- a/docs/API_docs/methods/photos_updateProfilePhoto.md
+++ b/docs/API_docs/methods/photos_updateProfilePhoto.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/docs/API_docs/methods/photos_uploadProfilePhoto.md b/docs/API_docs/methods/photos_uploadProfilePhoto.md
index 457bade8..badde2de 100644
--- a/docs/API_docs/methods/photos_uploadProfilePhoto.md
+++ b/docs/API_docs/methods/photos_uploadProfilePhoto.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/docs/API_docs/methods/stickers_addStickerToSet.md b/docs/API_docs/methods/stickers_addStickerToSet.md
index 78e8437c..b1fa2aad 100644
--- a/docs/API_docs/methods/stickers_addStickerToSet.md
+++ b/docs/API_docs/methods/stickers_addStickerToSet.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.addStickerToSet({stickerset=InputStickerSet, sticker=InputStickerSetItem, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/docs/API_docs/methods/stickers_changeStickerPosition.md b/docs/API_docs/methods/stickers_changeStickerPosition.md
index cddc1cbb..98dde67e 100644
--- a/docs/API_docs/methods/stickers_changeStickerPosition.md
+++ b/docs/API_docs/methods/stickers_changeStickerPosition.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.changeStickerPosition({sticker=InputDocument, position=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/docs/API_docs/methods/stickers_createStickerSet.md b/docs/API_docs/methods/stickers_createStickerSet.md
index 41e4ad11..741e0ad6 100644
--- a/docs/API_docs/methods/stickers_createStickerSet.md
+++ b/docs/API_docs/methods/stickers_createStickerSet.md
@@ -46,18 +46,18 @@ Or, if you're into Lua:
messages_StickerSet = stickers.createStickerSet({masks=Bool, user_id=InputUser, title='string', short_name='string', stickers={InputStickerSetItem}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|PACK_SHORT_NAME_INVALID|Short pack name invalid|
-|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|STICKER_EMOJI_INVALID|Sticker emoji invalid|
-|STICKER_FILE_INVALID|Sticker file invalid|
-|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
-|STICKERS_EMPTY|No sticker provided|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|PACK_SHORT_NAME_INVALID|Short pack name invalid|
+|400|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|STICKER_EMOJI_INVALID|Sticker emoji invalid|
+|400|STICKER_FILE_INVALID|Sticker file invalid|
+|400|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
+|400|STICKERS_EMPTY|No sticker provided|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/docs/API_docs/methods/stickers_removeStickerFromSet.md b/docs/API_docs/methods/stickers_removeStickerFromSet.md
index ea4621f2..d1fc4339 100644
--- a/docs/API_docs/methods/stickers_removeStickerFromSet.md
+++ b/docs/API_docs/methods/stickers_removeStickerFromSet.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.removeStickerFromSet({sticker=InputDocument, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/docs/API_docs/methods/updates_getChannelDifference.md b/docs/API_docs/methods/updates_getChannelDifference.md
index 6fa79529..9735c14a 100644
--- a/docs/API_docs/methods/updates_getChannelDifference.md
+++ b/docs/API_docs/methods/updates_getChannelDifference.md
@@ -7,8 +7,56 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|force|[Bool](../types/Bool.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|filter|[ChannelMessagesFilter](../types/ChannelMessagesFilter.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_ChannelDifference](../types/updates_ChannelDifference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_ChannelDifference = $MadelineProto->updates->getChannelDifference(['force' => Bool, 'channel' => InputChannel, 'filter' => ChannelMessagesFilter, 'pts' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_ChannelDifference = updates.getChannelDifference({force=Bool, channel=InputChannel, filter=ChannelMessagesFilter, pts=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|400|RANGES_INVALID|Invalid range provided|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/docs/API_docs/methods/updates_getDifference.md b/docs/API_docs/methods/updates_getDifference.md
index 33e7d7f2..bcfac4e2 100644
--- a/docs/API_docs/methods/updates_getDifference.md
+++ b/docs/API_docs/methods/updates_getDifference.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|pts\_total\_limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'pts_total_limit' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, pts_total_limit=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/docs/API_docs/methods/updates_getState.md b/docs/API_docs/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/docs/API_docs/methods/updates_getState.md
+++ b/docs/API_docs/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/docs/API_docs/methods/upload_getCdnFile.md b/docs/API_docs/methods/upload_getCdnFile.md
index 5e5b3f43..be9ad311 100644
--- a/docs/API_docs/methods/upload_getCdnFile.md
+++ b/docs/API_docs/methods/upload_getCdnFile.md
@@ -7,8 +7,40 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_CdnFile](../types/upload_CdnFile.md)
+
+### Can bots use this method: **NO**
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_CdnFile = $MadelineProto->upload->getCdnFile(['file_token' => 'bytes', 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_CdnFile = upload.getCdnFile({file_token='bytes', offset=int, limit=int, })
+```
+
diff --git a/docs/API_docs/methods/upload_getCdnFileHashes.md b/docs/API_docs/methods/upload_getCdnFileHashes.md
index ea6a8e75..d957578e 100644
--- a/docs/API_docs/methods/upload_getCdnFileHashes.md
+++ b/docs/API_docs/methods/upload_getCdnFileHashes.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->getCdnFileHashes(['file_token' => 'bytes', 'offset' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.getCdnFileHashes({file_token='bytes', offset=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/docs/API_docs/methods/upload_getFile.md b/docs/API_docs/methods/upload_getFile.md
index c72e6090..3c0c48f8 100644
--- a/docs/API_docs/methods/upload_getFile.md
+++ b/docs/API_docs/methods/upload_getFile.md
@@ -7,8 +7,54 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|precise|[Bool](../types/Bool.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Optional|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['precise' => Bool, 'location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({precise=Bool, location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/docs/API_docs/methods/upload_getFileHashes.md b/docs/API_docs/methods/upload_getFileHashes.md
index debeb60d..e03dd5c5 100644
--- a/docs/API_docs/methods/upload_getFileHashes.md
+++ b/docs/API_docs/methods/upload_getFileHashes.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+Get file hashes
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | The file | Yes|
+|offset|[int](../types/int.md) | Offset | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->getFileHashes(['location' => InputFileLocation, 'offset' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.getFileHashes({location=InputFileLocation, offset=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LOCATION_INVALID|The provided location is invalid|
diff --git a/docs/API_docs/methods/upload_getWebFile.md b/docs/API_docs/methods/upload_getWebFile.md
index 21179a66..7b63f96c 100644
--- a/docs/API_docs/methods/upload_getWebFile.md
+++ b/docs/API_docs/methods/upload_getWebFile.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
upload_WebFile = upload.getWebFile({location=InputWebFileLocation, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LOCATION_INVALID|The provided location is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LOCATION_INVALID|The provided location is invalid|
diff --git a/docs/API_docs/methods/upload_reuploadCdnFile.md b/docs/API_docs/methods/upload_reuploadCdnFile.md
index cc20d5e3..f531557c 100644
--- a/docs/API_docs/methods/upload_reuploadCdnFile.md
+++ b/docs/API_docs/methods/upload_reuploadCdnFile.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|request\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->reuploadCdnFile(['file_token' => 'bytes', 'request_token' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.reuploadCdnFile({file_token='bytes', request_token='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/docs/API_docs/methods/upload_saveBigFilePart.md b/docs/API_docs/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/docs/API_docs/methods/upload_saveBigFilePart.md
+++ b/docs/API_docs/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/docs/API_docs/methods/upload_saveFilePart.md b/docs/API_docs/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/docs/API_docs/methods/upload_saveFilePart.md
+++ b/docs/API_docs/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/docs/API_docs/methods/users_getFullUser.md b/docs/API_docs/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/docs/API_docs/methods/users_getFullUser.md
+++ b/docs/API_docs/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/docs/API_docs/methods/users_getUsers.md b/docs/API_docs/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/docs/API_docs/methods/users_getUsers.md
+++ b/docs/API_docs/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/docs/API_docs/methods/users_setSecureValueErrors.md b/docs/API_docs/methods/users_setSecureValueErrors.md
index 40e398ab..661137fb 100644
--- a/docs/API_docs/methods/users_setSecureValueErrors.md
+++ b/docs/API_docs/methods/users_setSecureValueErrors.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = users.setSecureValueErrors({id=InputUser, errors={SecureValueError}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/docs/MTProto_docs/methods/index.md b/docs/MTProto_docs/methods/index.md
index ad0b9fef..657b2299 100644
--- a/docs/MTProto_docs/methods/index.md
+++ b/docs/MTProto_docs/methods/index.md
@@ -30,23 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Destroy the current MTProto session: destroy_session
-
-* Do not send answer to provided request: rpc_drop_answer
-
-* Get future salts: get_future_salts
-
-* Makes the server send messages waiting in the buffer: http_wait
-
-* Pings the server and causes disconection if the same method is not called within ping_disconnect_delay: ping_delay_disconnect
-
-* Pings the server: ping
-
-* Requests Diffie-hellman parameters for key exchange: req_DH_params
-
-* Requests PQ for factorization (new version): req_pq_multi
-
-* Requests PQ for factorization: req_pq
-
-* Sets client diffie-hellman parameters: set_client_DH_params
-
diff --git a/docs/docs/INSTALLATION.md b/docs/docs/INSTALLATION.md
index 8d01aed5..63b59571 100644
--- a/docs/docs/INSTALLATION.md
+++ b/docs/docs/INSTALLATION.md
@@ -113,4 +113,4 @@ Then you can require the package by addding the following lines to the require s
"amphp/dns": "dev-master#aa1892bd as 0.9"
```
-Next section
+Next section
\ No newline at end of file
diff --git a/docs/index.md b/docs/index.md
index be814661..f9288087 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -180,279 +180,6 @@ Tip: if you receive an error (or nothing), [send us](https://t.me/pwrtelegramgro
* [Upload or download files up to 1.5 GB](https://docs.madelineproto.xyz/docs/FILES.html)
* [Make a phone call and play a song](https://docs.madelineproto.xyz/docs/CALLS.html)
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
- * Accept URL authorization: messages.acceptUrlAuth
- * Accept contact: contacts.acceptContact
- * Accept telegram passport authorization: account.acceptAuthorization
- * Accept telegram's TOS: help.acceptTermsOfService
- * Add a sticker set: messages.installStickerSet
- * Add a sticker to favorites: messages.faveSticker
- * Add a sticker to recent stickers: messages.saveRecentSticker
- * Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
- * Add contact: contacts.addContact
- * Add phone number as contact: contacts.importContacts
- * Add sticker to stickerset: stickers.addStickerToSet
- * Add users to channel/supergroup: channels.inviteToChannel
- * Block a user: contacts.block
- * Bots only: get telegram passport authorization form: account.getAuthorizationForm
- * Bots only: send payment form: payments.sendPaymentForm
- * Bots only: set precheckout results: messages.setBotPrecheckoutResults
- * Bots only: set shipping results: messages.setBotShippingResults
- * Bots only: set the callback answer (after a button was clicked): messages.setBotCallbackAnswer
- * Bots only: set the results of an inline query: messages.setInlineBotResults
- * Call inline bot: messages.getInlineBotResults
- * Cancel password recovery email: account.cancelPasswordEmail
- * Change notification settings: account.updateNotifySettings
- * Change sticker position in photo: stickers.changeStickerPosition
- * Change the phone number associated to this account: account.changePhone
- * Change the phone number: account.sendChangePhoneCode
- * Change the profile photo: photos.updateProfilePhoto
- * Change typing status: messages.setTyping
- * Check if about to edit a message or a media caption: messages.getMessageEditData
- * Check if an invitation link is valid: messages.checkChatInvite
- * Check if this username is available: account.checkUsername
- * Check if this username is free and can be assigned to a channel/supergroup: channels.checkUsername
- * Clear all drafts: messages.clearAllDrafts
- * Clear all recent stickers: messages.clearRecentStickers
- * Clear saved payments info: payments.clearSavedInfo
- * Confirm password recovery using email: account.confirmPasswordEmail
- * Confirm this phone number is associated to this account, obtain phone_code_hash from sendConfirmPhoneCode: account.confirmPhone
- * Contact signup notification setting value: account.getContactSignUpNotification
- * Convert chat to supergroup: messages.migrateChat
- * Create a chat (not supergroup): messages.createChat
- * Create channel/supergroup: channels.createChannel
- * Create stickerset: stickers.createStickerSet
- * Delete a certain session: account.resetAuthorization
- * Delete a certain telegram web login authorization: account.resetWebAuthorization
- * Delete a channel/supergroup: channels.deleteChannel
- * Delete a user from a chat (not supergroup): messages.deleteChatUser
- * Delete all logged-in sessions.: auth.resetAuthorizations
- * Delete all messages of a user in a channel/supergroup: channels.deleteUserHistory
- * Delete all temporary authorization keys except the ones provided: auth.dropTempAuthKeys
- * Delete channel/supergroup messages: channels.deleteMessages
- * Delete chat history: messages.deleteHistory
- * Delete contacts by phones: contacts.deleteByPhones
- * Delete folder: folders.deleteFolder
- * Delete messages: messages.deleteMessages
- * Delete multiple contacts: contacts.deleteContacts
- * Delete profile photos: photos.deletePhotos
- * Delete secure telegram passport value: account.deleteSecureValue
- * Delete the history of a supergroup/channel: channels.deleteHistory
- * Delete this account: account.deleteAccount
- * Disable all notifications for a certain period: account.updateDeviceLocked
- * Download a file through telegram: upload.getWebFile
- * Edit a message: messages.editMessage
- * Edit a sent inline message: messages.editInlineBotMessage
- * Edit admin permissions of a user in a channel/supergroup: channels.editAdmin
- * Edit admin permissions: messages.editChatAdmin
- * Edit chat info: messages.editChatAbout
- * Edit creator of channel: channels.editCreator
- * Edit default rights of chat: messages.editChatDefaultBannedRights
- * Edit folder: folders.editPeerFolders
- * Edit location (geochats): channels.editLocation
- * Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
- * Edit the photo of a supergroup/channel: channels.editPhoto
- * Edit the title of a normal chat (not supergroup): messages.editChatTitle
- * Edit the title of a supergroup/channel: channels.editTitle
- * Edit user info: help.editUserInfo
- * Enable or disable hidden history for new channel/supergroup users: channels.togglePreHistoryHidden
- * Export chat invite : messages.exportChatInvite
- * Find a sticker set: messages.searchStickerSets
- * Finish account exporting session: account.finishTakeoutSession
- * Forward messages: messages.forwardMessages
- * Get CDN configuration: help.getCdnConfig
- * Get a stickerset: messages.getStickerSet
- * Get account TTL: account.getAccountTTL
- * Get admin log of a channel/supergroup: channels.getAdminLog
- * Get all archived stickers: messages.getArchivedStickers
- * Get all channels you left: channels.getLeftChannels
- * Get all chats (not supergroups or channels): messages.getAllChats
- * Get all contacts: contacts.getContacts
- * Get all logged-in authorizations: account.getAuthorizations
- * Get all message drafts: messages.getAllDrafts
- * Get all secure telegram passport values: account.getAllSecureValues
- * Get all stickerpacks: messages.getAllStickers
- * Get all supergroups/channels where you're admin: channels.getAdminedPublicChannels
- * Get and increase message views: messages.getMessagesViews
- * Get app config: help.getAppConfig
- * Get autodownload settings: account.getAutoDownloadSettings
- * Get available languages: langpack.getLanguages
- * Get blocked users: contacts.getBlocked
- * Get call configuration: phone.getCallConfig
- * Get channel/supergroup messages: channels.getMessages
- * Get channel/supergroup participants (you should use `$MadelineProto->get_pwr_chat($id)` instead): channels.getParticipants
- * Get chats in common with a user: messages.getCommonChats
- * Get contacts by IDs: contacts.getContactIDs
- * Get deep link info: help.getDeepLinkInfo
- * Get dialog info of peers: messages.getPeerDialogs
- * Get dialogs marked as unread manually: messages.getDialogUnreadMarks
- * Get document by SHA256 hash: messages.getDocumentByHash
- * Get emoji URL: messages.getEmojiURL
- * Get emoji keyword difference: messages.getEmojiKeywordsDifference
- * Get emoji keyword languages: messages.getEmojiKeywordsLanguages
- * Get emoji keywords: messages.getEmojiKeywords
- * Get favorite stickers: messages.getFavedStickers
- * Get featured stickers: messages.getFeaturedStickers
- * Get groups for discussion: channels.getGroupsForDiscussion
- * Get high scores of a game sent in an inline message: messages.getInlineGameHighScores
- * Get high scores of a game: messages.getGameHighScores
- * Get info about a certain channel/supergroup participant: channels.getParticipant
- * Get info about app updates: help.getAppUpdate
- * Get info about chats: messages.getChats
- * Get info about multiple channels/supergroups: channels.getChannels
- * Get info about users: users.getUsers
- * Get info of support user: help.getSupport
- * Get information about the current proxy: help.getProxyData
- * Get invitation text: help.getInviteText
- * Get language pack strings: langpack.getStrings
- * Get language pack updates: langpack.getDifference
- * Get language pack: langpack.getLangPack
- * Get language: langpack.getLanguage
- * Get masks: messages.getMaskStickers
- * Get message ranges to fetch: messages.getSplitRanges
- * Get messages: messages.getMessages
- * Get most used chats: contacts.getTopPeers
- * Get nearest datacenter: help.getNearestDc
- * Get notification exceptions: account.getNotifyExceptions
- * Get notification settings: account.getNotifySettings
- * Get online status of all users: contacts.getStatuses
- * Get online users: messages.getOnlines
- * Get passport config: help.getPassportConfig
- * Get payment form: payments.getPaymentForm
- * Get payment receipt: payments.getPaymentReceipt
- * Get people nearby (geochats): contacts.getLocated
- * Get pinned dialogs: messages.getPinnedDialogs
- * Get poll results: messages.getPollResults
- * Get previous messages of a group: messages.getHistory
- * Get privacy settings: account.getPrivacy
- * Get recent locations: messages.getRecentLocations
- * Get recent stickers: messages.getRecentStickers
- * Get recent t.me URLs: help.getRecentMeUrls
- * Get saved contacts: contacts.getSaved
- * Get saved gifs: messages.getSavedGifs
- * Get saved payments info: payments.getSavedInfo
- * Get search counter: messages.getSearchCounters
- * Get secure value for telegram passport: account.getSecureValue
- * Get server configuration: help.getConfig
- * Get stats URL: messages.getStatsURL
- * Get stickers attachable to images: messages.getAttachedStickers
- * Get stickers: messages.getStickers
- * Get support name: help.getSupportName
- * Get telegram web login authorizations: account.getWebAuthorizations
- * Get temporary password for buying products through bots: account.getTmpPassword
- * Get the callback answer of a bot (after clicking a button): messages.getBotCallbackAnswer
- * Get the changelog of this app: help.getAppChangelog
- * Get the current password: account.getPassword
- * Get the link of a message in a channel: channels.exportMessageLink
- * Get the profile photos of a user: photos.getUserPhotos
- * Get the settings of apeer: messages.getPeerSettings
- * Get unread mentions: messages.getUnreadMentions
- * Get updated TOS: help.getTermsOfServiceUpdate
- * Get user info: help.getUserInfo
- * Get wallpaper info: account.getWallPaper
- * Get webpage preview: messages.getWebPage
- * Get webpage preview: messages.getWebPagePreview
- * Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
- * Global message search: messages.searchGlobal
- * Hide peer settings bar: messages.hidePeerSettingsBar
- * Import chat invite: messages.importChatInvite
- * Initializes connection and save information on the user's device and application.: initConnection
- * Install wallpaper: account.installWallPaper
- * Invalidate sent phone code: auth.cancelCode
- * Invoke method from takeout session: invokeWithTakeout
- * Invoke this method with layer X: invokeWithLayer
- * Invoke with messages range: invokeWithMessagesRange
- * Invoke with method without returning updates in the socket: invokeWithoutUpdates
- * Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
- * Join a channel/supergroup: channels.joinChannel
- * Kick or ban a user from a channel/supergroup: channels.editBanned
- * Leave a channel/supergroup: channels.leaveChannel
- * Log data for developer of this app: help.saveAppLog
- * Mark channel/supergroup history as read: channels.readHistory
- * Mark channel/supergroup messages as read: channels.readMessageContents
- * Mark dialog as unread : messages.markDialogUnread
- * Mark mentions as read: messages.readMentions
- * Mark message as read: messages.readMessageContents
- * Mark messages as read in secret chats: messages.readEncryptedHistory
- * Mark messages as read: messages.readHistory
- * Mark messages as read: messages.receivedMessages
- * Mark new featured stickers as read: messages.readFeaturedStickers
- * Notify server that you received a call (server will refuse all incoming calls until the current call is over): phone.receivedCall
- * Pin or unpin dialog: messages.toggleDialogPin
- * Register device for push notifications: account.registerDevice
- * Remove a sticker set: messages.uninstallStickerSet
- * Remove sticker from stickerset: stickers.removeStickerFromSet
- * Reorder pinned dialogs: messages.reorderPinnedDialogs
- * Reorder sticker sets: messages.reorderStickerSets
- * Report a message in a supergroup/channel for spam: channels.reportSpam
- * Report a message: messages.report
- * Report a peer for spam: messages.reportSpam
- * Report for spam a secret chat: messages.reportEncryptedSpam
- * Report for spam: account.reportPeer
- * Request URL authorization: messages.requestUrlAuth
- * Resend password recovery email: account.resendPasswordEmail
- * Resend the SMS verification code: auth.resendCode
- * Reset all notification settings: account.resetNotifySettings
- * Reset all telegram web login authorizations: account.resetWebAuthorizations
- * Reset saved contacts: contacts.resetSaved
- * Reset top peer rating for a certain category/peer: contacts.resetTopPeerRating
- * Reset wallpapers: account.resetWallPapers
- * Result type returned by a current query.: invokeAfterMsgs
- * Returns a list of available wallpapers.: account.getWallPapers
- * Save a GIF: messages.saveGif
- * Save a message draft: messages.saveDraft
- * Save autodownload settings: account.saveAutoDownloadSettings
- * Save call debugging info: phone.saveCallDebug
- * Save telegram passport secure value: account.saveSecureValue
- * Save wallpaper: account.saveWallPaper
- * Search contacts: contacts.search
- * Search gifs: messages.searchGifs
- * Search peers or messages: messages.search
- * Send a custom request to the bot API: bots.sendCustomRequest
- * Send a file to a secret chat: messages.sendEncryptedFile
- * Send a media: messages.sendMedia
- * Send a message: messages.sendMessage
- * Send a service message to a secret chat: messages.sendEncryptedService
- * Send an album: messages.sendMultiMedia
- * Send an email to recover the 2FA password: auth.requestPasswordRecovery
- * Send confirmation phone code: account.sendConfirmPhoneCode
- * Send email verification code: account.sendVerifyEmailCode
- * Send inline bot result obtained with messages.getInlineBotResults to the chat: messages.sendInlineBotResult
- * Send message to secret chat: messages.sendEncrypted
- * Send phone verification code: account.sendVerifyPhoneCode
- * Send screenshot notification: messages.sendScreenshotNotification
- * Send typing notification to secret chat: messages.setEncryptedTyping
- * Send vote: messages.sendVote
- * Send webhook request via bot API: bots.answerWebhookJSONQuery
- * Set account TTL: account.setAccountTTL
- * Set contact sign up notification: account.setContactSignUpNotification
- * Set discussion group of channel: channels.setDiscussionGroup
- * Set phone call rating: phone.setCallRating
- * Set privacy settings: account.setPrivacy
- * Set secure value error for telegram passport: users.setSecureValueErrors
- * Set the game score of an inline message: messages.setInlineGameScore
- * Set the game score: messages.setGameScore
- * Set the supergroup/channel stickerpack: channels.setStickers
- * Set the update status of webhook: help.setBotUpdatesStatus
- * Start a bot: messages.startBot
- * Start account exporting session: account.initTakeoutSession
- * Stop sending PUSH notifications to app: account.unregisterDevice
- * Toggle channel signatures: channels.toggleSignatures
- * Toggle slow mode: channels.toggleSlowMode
- * Toggle top peers: contacts.toggleTopPeers
- * Unblock a user: contacts.unblock
- * Update online status: account.updateStatus
- * Update pinned message: messages.updatePinnedMessage
- * Update profile info: account.updateProfile
- * Update the username of a supergroup/channel: channels.updateUsername
- * Update this user's username: account.updateUsername
- * Upload a file without sending it to anyone: messages.uploadMedia
- * Upload a secret chat file without sending it to anyone: messages.uploadEncryptedFile
- * Upload profile photo: photos.uploadProfilePhoto
- * Upload wallpaper: account.uploadWallPaper
- * Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
- * Validate requested payment info: payments.validateRequestedInfo
- * Verify email address: account.verifyEmail
- * Verify phone number: account.verifyPhone
* [Peers](https://docs.madelineproto.xyz/docs/USING_METHODS.html#peers)
* [Files](https://docs.madelineproto.xyz/docs/FILES.html)
* [Secret chats](https://docs.madelineproto.xyz/docs/USING_METHODS.html#secret-chats)
diff --git a/old_docs/API_docs_v100/methods/README.md b/old_docs/API_docs_v100/methods/README.md
index 03294b63..a161eab6 100644
--- a/old_docs/API_docs_v100/methods/README.md
+++ b/old_docs/API_docs_v100/methods/README.md
@@ -30,541 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Accept URL authorization: messages.acceptUrlAuth
-
-* Accept telegram passport authorization: account.acceptAuthorization
-
-* Accept telegram's TOS: help.acceptTermsOfService
-
-* Add a sticker set: messages.installStickerSet
-
-* Add a sticker to favorites: messages.faveSticker
-
-* Add a sticker to recent stickers: messages.saveRecentSticker
-
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add phone number as contact: contacts.importContacts
-
-* Add sticker to stickerset: stickers.addStickerToSet
-
-* Add users to channel/supergroup: channels.inviteToChannel
-
-* Block a user: contacts.block
-
-* Bots only: get telegram passport authorization form: account.getAuthorizationForm
-
-* Bots only: send payment form: payments.sendPaymentForm
-
-* Bots only: set precheckout results: messages.setBotPrecheckoutResults
-
-* Bots only: set shipping results: messages.setBotShippingResults
-
-* Bots only: set the callback answer (after a button was clicked): messages.setBotCallbackAnswer
-
-* Bots only: set the results of an inline query: messages.setInlineBotResults
-
-* Call inline bot: messages.getInlineBotResults
-
-* Cancel password recovery email: account.cancelPasswordEmail
-
-* Change notification settings: account.updateNotifySettings
-
-* Change sticker position in photo: stickers.changeStickerPosition
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if about to edit a message or a media caption: messages.getMessageEditData
-
-* Check if an invitation link is valid: messages.checkChatInvite
-
-* Check if this username is available: account.checkUsername
-
-* Check if this username is free and can be assigned to a channel/supergroup: channels.checkUsername
-
-* Clear all drafts: messages.clearAllDrafts
-
-* Clear all recent stickers: messages.clearRecentStickers
-
-* Clear saved payments info: payments.clearSavedInfo
-
-* Confirm password recovery using email: account.confirmPasswordEmail
-
-* Confirm this phone number is associated to this account, obtain phone_code_hash from sendConfirmPhoneCode: account.confirmPhone
-
-* Contact signup notification setting value: account.getContactSignUpNotification
-
-* Convert chat to supergroup: messages.migrateChat
-
-* Create a chat (not supergroup): messages.createChat
-
-* Create channel/supergroup: channels.createChannel
-
-* Create stickerset: stickers.createStickerSet
-
-* Delete a certain session: account.resetAuthorization
-
-* Delete a certain telegram web login authorization: account.resetWebAuthorization
-
-* Delete a channel/supergroup: channels.deleteChannel
-
-* Delete a contact: contacts.deleteContact
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete all messages of a user in a channel/supergroup: channels.deleteUserHistory
-
-* Delete all temporary authorization keys except the ones provided: auth.dropTempAuthKeys
-
-* Delete channel/supergroup messages: channels.deleteMessages
-
-* Delete chat history: messages.deleteHistory
-
-* Delete contacts by phones: contacts.deleteByPhones
-
-* Delete folder: folders.deleteFolder
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete secure telegram passport value: account.deleteSecureValue
-
-* Delete the history of a supergroup/channel: channels.deleteHistory
-
-* Delete this account: account.deleteAccount
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Download a file through telegram: upload.getWebFile
-
-* Edit a message: messages.editMessage
-
-* Edit a sent inline message: messages.editInlineBotMessage
-
-* Edit admin permissions of a user in a channel/supergroup: channels.editAdmin
-
-* Edit admin permissions: messages.editChatAdmin
-
-* Edit chat info: messages.editChatAbout
-
-* Edit default rights of chat: messages.editChatDefaultBannedRights
-
-* Edit folder: folders.editPeerFolders
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the photo of a supergroup/channel: channels.editPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Edit the title of a supergroup/channel: channels.editTitle
-
-* Edit user info: help.editUserInfo
-
-* Enable or disable hidden history for new channel/supergroup users: channels.togglePreHistoryHidden
-
-* Export chat invite : messages.exportChatInvite
-
-* Find a sticker set: messages.searchStickerSets
-
-* Finish account exporting session: account.finishTakeoutSession
-
-* Forward messages: messages.forwardMessages
-
-* Get CDN configuration: help.getCdnConfig
-
-* Get a stickerset: messages.getStickerSet
-
-* Get account TTL: account.getAccountTTL
-
-* Get admin log of a channel/supergroup: channels.getAdminLog
-
-* Get all archived stickers: messages.getArchivedStickers
-
-* Get all channels you left: channels.getLeftChannels
-
-* Get all chats (not supergroups or channels): messages.getAllChats
-
-* Get all contacts: contacts.getContacts
-
-* Get all logged-in authorizations: account.getAuthorizations
-
-* Get all message drafts: messages.getAllDrafts
-
-* Get all secure telegram passport values: account.getAllSecureValues
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get all supergroups/channels where you're admin: channels.getAdminedPublicChannels
-
-* Get and increase message views: messages.getMessagesViews
-
-* Get app config: help.getAppConfig
-
-* Get autodownload settings: account.getAutoDownloadSettings
-
-* Get available languages: langpack.getLanguages
-
-* Get blocked users: contacts.getBlocked
-
-* Get call configuration: phone.getCallConfig
-
-* Get channel/supergroup messages: channels.getMessages
-
-* Get channel/supergroup participants (you should use `$MadelineProto->get_pwr_chat($id)` instead): channels.getParticipants
-
-* Get channels for discussion: channels.getBroadcastsForDiscussion
-
-* Get chats in common with a user: messages.getCommonChats
-
-* Get contacts by IDs: contacts.getContactIDs
-
-* Get deep link info: help.getDeepLinkInfo
-
-* Get dialog info of peers: messages.getPeerDialogs
-
-* Get dialogs marked as unread manually: messages.getDialogUnreadMarks
-
-* Get document by SHA256 hash: messages.getDocumentByHash
-
-* Get emoji URL: messages.getEmojiURL
-
-* Get emoji keyword difference: messages.getEmojiKeywordsDifference
-
-* Get emoji keyword languages: messages.getEmojiKeywordsLanguages
-
-* Get emoji keywords: messages.getEmojiKeywords
-
-* Get favorite stickers: messages.getFavedStickers
-
-* Get featured stickers: messages.getFeaturedStickers
-
-* Get groups for discussion: channels.getGroupsForDiscussion
-
-* Get high scores of a game sent in an inline message: messages.getInlineGameHighScores
-
-* Get high scores of a game: messages.getGameHighScores
-
-* Get info about a certain channel/supergroup participant: channels.getParticipant
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about multiple channels/supergroups: channels.getChannels
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get information about the current proxy: help.getProxyData
-
-* Get invitation text: help.getInviteText
-
-* Get language pack strings: langpack.getStrings
-
-* Get language pack updates: langpack.getDifference
-
-* Get language pack: langpack.getLangPack
-
-* Get language: langpack.getLanguage
-
-* Get masks: messages.getMaskStickers
-
-* Get message ranges to fetch: messages.getSplitRanges
-
-* Get messages: messages.getMessages
-
-* Get most used chats: contacts.getTopPeers
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification exceptions: account.getNotifyExceptions
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get online users: messages.getOnlines
-
-* Get passport config: help.getPassportConfig
-
-* Get payment form: payments.getPaymentForm
-
-* Get payment receipt: payments.getPaymentReceipt
-
-* Get pinned dialogs: messages.getPinnedDialogs
-
-* Get poll results: messages.getPollResults
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get recent locations: messages.getRecentLocations
-
-* Get recent stickers: messages.getRecentStickers
-
-* Get recent t.me URLs: help.getRecentMeUrls
-
-* Get saved contacts: contacts.getSaved
-
-* Get saved gifs: messages.getSavedGifs
-
-* Get saved payments info: payments.getSavedInfo
-
-* Get search counter: messages.getSearchCounters
-
-* Get secure value for telegram passport: account.getSecureValue
-
-* Get server configuration: help.getConfig
-
-* Get stats URL: messages.getStatsURL
-
-* Get stickers attachable to images: messages.getAttachedStickers
-
-* Get stickers: messages.getStickers
-
-* Get support name: help.getSupportName
-
-* Get telegram web login authorizations: account.getWebAuthorizations
-
-* Get temporary password for buying products through bots: account.getTmpPassword
-
-* Get the callback answer of a bot (after clicking a button): messages.getBotCallbackAnswer
-
-* Get the changelog of this app: help.getAppChangelog
-
-* Get the current password: account.getPassword
-
-* Get the link of a message in a channel: channels.exportMessageLink
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Get the settings of apeer: messages.getPeerSettings
-
-* Get unread mentions: messages.getUnreadMentions
-
-* Get updated TOS: help.getTermsOfServiceUpdate
-
-* Get user info: help.getUserInfo
-
-* Get wallpaper info: account.getWallPaper
-
-* Get webpage preview: messages.getWebPage
-
-* Get webpage preview: messages.getWebPagePreview
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Global message search: messages.searchGlobal
-
-* Hide report spam popup: messages.hideReportSpam
-
-* Import chat invite: messages.importChatInvite
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Install wallpaper: account.installWallPaper
-
-* Invalidate sent phone code: auth.cancelCode
-
-* Invoke method from takeout session: invokeWithTakeout
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invoke with messages range: invokeWithMessagesRange
-
-* Invoke with method without returning updates in the socket: invokeWithoutUpdates
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Join a channel/supergroup: channels.joinChannel
-
-* Kick or ban a user from a channel/supergroup: channels.editBanned
-
-* Leave a channel/supergroup: channels.leaveChannel
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark channel/supergroup history as read: channels.readHistory
-
-* Mark channel/supergroup messages as read: channels.readMessageContents
-
-* Mark dialog as unread : messages.markDialogUnread
-
-* Mark mentions as read: messages.readMentions
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Mark new featured stickers as read: messages.readFeaturedStickers
-
-* Notify server that you received a call (server will refuse all incoming calls until the current call is over): phone.receivedCall
-
-* Pin or unpin dialog: messages.toggleDialogPin
-
-* Register device for push notifications: account.registerDevice
-
-* Remove a sticker set: messages.uninstallStickerSet
-
-* Remove sticker from stickerset: stickers.removeStickerFromSet
-
-* Reorder pinned dialogs: messages.reorderPinnedDialogs
-
-* Reorder sticker sets: messages.reorderStickerSets
-
-* Report a message in a supergroup/channel for spam: channels.reportSpam
-
-* Report a message: messages.report
-
-* Report a peer for spam: messages.reportSpam
-
-* Report for spam a secret chat: messages.reportEncryptedSpam
-
-* Report for spam: account.reportPeer
-
-* Request URL authorization: messages.requestUrlAuth
-
-* Resend password recovery email: account.resendPasswordEmail
-
-* Resend the SMS verification code: auth.resendCode
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Reset all telegram web login authorizations: account.resetWebAuthorizations
-
-* Reset saved contacts: contacts.resetSaved
-
-* Reset top peer rating for a certain category/peer: contacts.resetTopPeerRating
-
-* Reset wallpapers: account.resetWallPapers
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Save a GIF: messages.saveGif
-
-* Save a message draft: messages.saveDraft
-
-* Save autodownload settings: account.saveAutoDownloadSettings
-
-* Save call debugging info: phone.saveCallDebug
-
-* Save telegram passport secure value: account.saveSecureValue
-
-* Save wallpaper: account.saveWallPaper
-
-* Search contacts: contacts.search
-
-* Search gifs: messages.searchGifs
-
-* Search peers or messages: messages.search
-
-* Send a custom request to the bot API: bots.sendCustomRequest
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send an album: messages.sendMultiMedia
-
-* Send an email to recover the 2FA password: auth.requestPasswordRecovery
-
-* Send confirmation phone code: account.sendConfirmPhoneCode
-
-* Send email verification code: account.sendVerifyEmailCode
-
-* Send inline bot result obtained with messages.getInlineBotResults to the chat: messages.sendInlineBotResult
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send phone verification code: account.sendVerifyPhoneCode
-
-* Send screenshot notification: messages.sendScreenshotNotification
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Send vote: messages.sendVote
-
-* Send webhook request via bot API: bots.answerWebhookJSONQuery
-
-* Set account TTL: account.setAccountTTL
-
-* Set contact sign up notification: account.setContactSignUpNotification
-
-* Set discussion group of channel: channels.setDiscussionGroup
-
-* Set phone call rating: phone.setCallRating
-
-* Set privacy settings: account.setPrivacy
-
-* Set secure value error for telegram passport: users.setSecureValueErrors
-
-* Set the game score of an inline message: messages.setInlineGameScore
-
-* Set the game score: messages.setGameScore
-
-* Set the supergroup/channel stickerpack: channels.setStickers
-
-* Set the update status of webhook: help.setBotUpdatesStatus
-
-* Start a bot: messages.startBot
-
-* Start account exporting session: account.initTakeoutSession
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Toggle channel signatures: channels.toggleSignatures
-
-* Toggle top peers: contacts.toggleTopPeers
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update pinned message: messages.updatePinnedMessage
-
-* Update profile info: account.updateProfile
-
-* Update the username of a supergroup/channel: channels.updateUsername
-
-* Update this user's username: account.updateUsername
-
-* Upload a file without sending it to anyone: messages.uploadMedia
-
-* Upload a secret chat file without sending it to anyone: messages.uploadEncryptedFile
-
-* Upload profile photo: photos.uploadProfilePhoto
-
-* Upload wallpaper: account.uploadWallPaper
-
-* Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
-
-* Validate requested payment info: payments.validateRequestedInfo
-
-* Verify email address: account.verifyEmail
-
-* Verify phone number: account.verifyPhone
-
diff --git a/old_docs/API_docs_v100/methods/account_changePhone.md b/old_docs/API_docs_v100/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/old_docs/API_docs_v100/methods/account_changePhone.md
+++ b/old_docs/API_docs_v100/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v100/methods/account_checkUsername.md b/old_docs/API_docs_v100/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v100/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v100/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v100/methods/account_confirmPhone.md b/old_docs/API_docs_v100/methods/account_confirmPhone.md
index b730c2dc..c114cd20 100644
--- a/old_docs/API_docs_v100/methods/account_confirmPhone.md
+++ b/old_docs/API_docs_v100/methods/account_confirmPhone.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = account.confirmPhone({phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_HASH_INVALID|Code hash invalid|
-|PHONE_CODE_EMPTY|phone_code is missing|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_HASH_INVALID|Code hash invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
diff --git a/old_docs/API_docs_v100/methods/account_getNotifySettings.md b/old_docs/API_docs_v100/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v100/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v100/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v100/methods/account_getPasswordSettings.md b/old_docs/API_docs_v100/methods/account_getPasswordSettings.md
index 8ebb78ee..e41c6b67 100644
--- a/old_docs/API_docs_v100/methods/account_getPasswordSettings.md
+++ b/old_docs/API_docs_v100/methods/account_getPasswordSettings.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+Get the current 2FA settings
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password|[InputCheckPasswordSRP](../types/InputCheckPasswordSRP.md) | You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [account\_PasswordSettings](../types/account_PasswordSettings.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$account_PasswordSettings = $MadelineProto->account->getPasswordSettings(['password' => InputCheckPasswordSRP, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+account_PasswordSettings = account.getPasswordSettings({password=InputCheckPasswordSRP, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v100/methods/account_getPrivacy.md b/old_docs/API_docs_v100/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/old_docs/API_docs_v100/methods/account_getPrivacy.md
+++ b/old_docs/API_docs_v100/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v100/methods/account_getTmpPassword.md b/old_docs/API_docs_v100/methods/account_getTmpPassword.md
index 3a29d97a..0ae4061f 100644
--- a/old_docs/API_docs_v100/methods/account_getTmpPassword.md
+++ b/old_docs/API_docs_v100/methods/account_getTmpPassword.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
account_TmpPassword = account.getTmpPassword({password=InputCheckPasswordSRP, period=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_HASH_INVALID|The provided password hash is invalid|
-|TMP_PASSWORD_DISABLED|The temporary password is disabled|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
+|400|TMP_PASSWORD_DISABLED|The temporary password is disabled|
diff --git a/old_docs/API_docs_v100/methods/account_registerDevice.md b/old_docs/API_docs_v100/methods/account_registerDevice.md
index 7c34f6c4..a8e8c2a2 100644
--- a/old_docs/API_docs_v100/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v100/methods/account_registerDevice.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({token_type=int, token='string', app_sandbox=Bool, secret='bytes', other_uids={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v100/methods/account_reportPeer.md b/old_docs/API_docs_v100/methods/account_reportPeer.md
index a203c900..87b080eb 100644
--- a/old_docs/API_docs_v100/methods/account_reportPeer.md
+++ b/old_docs/API_docs_v100/methods/account_reportPeer.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.reportPeer({peer=InputPeer, reason=ReportReason, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v100/methods/account_resetAuthorization.md b/old_docs/API_docs_v100/methods/account_resetAuthorization.md
index c950992c..e8e8ecc4 100644
--- a/old_docs/API_docs_v100/methods/account_resetAuthorization.md
+++ b/old_docs/API_docs_v100/methods/account_resetAuthorization.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.resetAuthorization({hash=long, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v100/methods/account_sendChangePhoneCode.md b/old_docs/API_docs_v100/methods/account_sendChangePhoneCode.md
index 3a0923f8..26375a94 100644
--- a/old_docs/API_docs_v100/methods/account_sendChangePhoneCode.md
+++ b/old_docs/API_docs_v100/methods/account_sendChangePhoneCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendChangePhoneCode({phone_number='string', settings=CodeSettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v100/methods/account_sendConfirmPhoneCode.md b/old_docs/API_docs_v100/methods/account_sendConfirmPhoneCode.md
index 02896f84..426b70b8 100644
--- a/old_docs/API_docs_v100/methods/account_sendConfirmPhoneCode.md
+++ b/old_docs/API_docs_v100/methods/account_sendConfirmPhoneCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendConfirmPhoneCode({hash='string', settings=CodeSettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v100/methods/account_setAccountTTL.md b/old_docs/API_docs_v100/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/old_docs/API_docs_v100/methods/account_setAccountTTL.md
+++ b/old_docs/API_docs_v100/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/old_docs/API_docs_v100/methods/account_setPrivacy.md b/old_docs/API_docs_v100/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/old_docs/API_docs_v100/methods/account_setPrivacy.md
+++ b/old_docs/API_docs_v100/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v100/methods/account_unregisterDevice.md b/old_docs/API_docs_v100/methods/account_unregisterDevice.md
index 13d11e88..e39f0811 100644
--- a/old_docs/API_docs_v100/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v100/methods/account_unregisterDevice.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', other_uids={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v100/methods/account_updateNotifySettings.md b/old_docs/API_docs_v100/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v100/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v100/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v100/methods/account_updatePasswordSettings.md b/old_docs/API_docs_v100/methods/account_updatePasswordSettings.md
index 80f27228..7afb81ea 100644
--- a/old_docs/API_docs_v100/methods/account_updatePasswordSettings.md
+++ b/old_docs/API_docs_v100/methods/account_updatePasswordSettings.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password|[InputCheckPasswordSRP](../types/InputCheckPasswordSRP.md) | You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|new\_settings|[account\_PasswordInputSettings](../types/account_PasswordInputSettings.md) | New 2FA settings | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->account->updatePasswordSettings(['password' => InputCheckPasswordSRP, 'new_settings' => account_PasswordInputSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = account.updatePasswordSettings({password=InputCheckPasswordSRP, new_settings=account_PasswordInputSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EMAIL_UNCONFIRMED|Email unconfirmed|
+|400|EMAIL_UNCONFIRMED_X|The provided email isn't confirmed, X is the length of the verification code that was just sent to the email.|
+|400|NEW_SALT_INVALID|The new salt is invalid|
+|400|NEW_SETTINGS_INVALID|The new settings are invalid|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v100/methods/account_updateProfile.md b/old_docs/API_docs_v100/methods/account_updateProfile.md
index af5b6a0f..0d74c5e5 100644
--- a/old_docs/API_docs_v100/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v100/methods/account_updateProfile.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v100/methods/account_updateStatus.md b/old_docs/API_docs_v100/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v100/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v100/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v100/methods/account_updateUsername.md b/old_docs/API_docs_v100/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v100/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v100/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v100/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v100/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v100/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v100/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v100/methods/auth_cancelCode.md b/old_docs/API_docs_v100/methods/auth_cancelCode.md
index fcbd7713..a69e0118 100644
--- a/old_docs/API_docs_v100/methods/auth_cancelCode.md
+++ b/old_docs/API_docs_v100/methods/auth_cancelCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = auth.cancelCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v100/methods/auth_checkPassword.md b/old_docs/API_docs_v100/methods/auth_checkPassword.md
index 8d76c483..ad2a88a2 100644
--- a/old_docs/API_docs_v100/methods/auth_checkPassword.md
+++ b/old_docs/API_docs_v100/methods/auth_checkPassword.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password|[InputCheckPasswordSRP](../types/InputCheckPasswordSRP.md) | You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->checkPassword(['password' => InputCheckPasswordSRP, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.checkPassword({password=InputCheckPasswordSRP, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v100/methods/auth_exportAuthorization.md b/old_docs/API_docs_v100/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v100/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v100/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v100/methods/auth_importAuthorization.md b/old_docs/API_docs_v100/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v100/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v100/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v100/methods/auth_importBotAuthorization.md b/old_docs/API_docs_v100/methods/auth_importBotAuthorization.md
index 1a98c1b9..98a2f8ca 100644
--- a/old_docs/API_docs_v100/methods/auth_importBotAuthorization.md
+++ b/old_docs/API_docs_v100/methods/auth_importBotAuthorization.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|api\_id|[int](../types/int.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_hash|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|bot\_auth\_token|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importBotAuthorization(['api_id' => int, 'api_hash' => 'string', 'bot_auth_token' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importBotAuthorization({api_id=int, api_hash='string', bot_auth_token='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ACCESS_TOKEN_EXPIRED|Access token expired|
+|400|ACCESS_TOKEN_INVALID|Access token invalid|
+|400|API_ID_INVALID|API ID invalid|
diff --git a/old_docs/API_docs_v100/methods/auth_logOut.md b/old_docs/API_docs_v100/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v100/methods/auth_logOut.md
+++ b/old_docs/API_docs_v100/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v100/methods/auth_recoverPassword.md b/old_docs/API_docs_v100/methods/auth_recoverPassword.md
index 83ff5aed..d4bad9c5 100644
--- a/old_docs/API_docs_v100/methods/auth_recoverPassword.md
+++ b/old_docs/API_docs_v100/methods/auth_recoverPassword.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
auth_Authorization = auth.recoverPassword({code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_EMPTY|The provided code is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_EMPTY|The provided code is empty|
diff --git a/old_docs/API_docs_v100/methods/auth_requestPasswordRecovery.md b/old_docs/API_docs_v100/methods/auth_requestPasswordRecovery.md
index 1864bbb0..b6ad57ba 100644
--- a/old_docs/API_docs_v100/methods/auth_requestPasswordRecovery.md
+++ b/old_docs/API_docs_v100/methods/auth_requestPasswordRecovery.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
auth_PasswordRecovery = auth.requestPasswordRecovery({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_EMPTY|The provided password is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_EMPTY|The provided password is empty|
diff --git a/old_docs/API_docs_v100/methods/auth_resendCode.md b/old_docs/API_docs_v100/methods/auth_resendCode.md
index ff7868ea..ec730d75 100644
--- a/old_docs/API_docs_v100/methods/auth_resendCode.md
+++ b/old_docs/API_docs_v100/methods/auth_resendCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = auth.resendCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v100/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v100/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v100/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v100/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v100/methods/auth_sendCode.md b/old_docs/API_docs_v100/methods/auth_sendCode.md
index 9afebb55..83dfd500 100644
--- a/old_docs/API_docs_v100/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v100/methods/auth_sendCode.md
@@ -7,8 +7,58 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+|settings|[CodeSettings](../types/CodeSettings.md) | You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['phone_number' => 'string', 'api_id' => int, 'api_hash' => 'string', 'settings' => CodeSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({phone_number='string', api_id=int, api_hash='string', settings=CodeSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v100/methods/auth_signIn.md b/old_docs/API_docs_v100/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v100/methods/auth_signIn.md
+++ b/old_docs/API_docs_v100/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v100/methods/auth_signUp.md b/old_docs/API_docs_v100/methods/auth_signUp.md
index 15960145..31154486 100644
--- a/old_docs/API_docs_v100/methods/auth_signUp.md
+++ b/old_docs/API_docs_v100/methods/auth_signUp.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', phone_code='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v100/methods/bots_answerWebhookJSONQuery.md b/old_docs/API_docs_v100/methods/bots_answerWebhookJSONQuery.md
index ae0fa6d9..f2233514 100644
--- a/old_docs/API_docs_v100/methods/bots_answerWebhookJSONQuery.md
+++ b/old_docs/API_docs_v100/methods/bots_answerWebhookJSONQuery.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = bots.answerWebhookJSONQuery({query_id=long, data=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v100/methods/bots_sendCustomRequest.md b/old_docs/API_docs_v100/methods/bots_sendCustomRequest.md
index c1fd8183..8a6a2df5 100644
--- a/old_docs/API_docs_v100/methods/bots_sendCustomRequest.md
+++ b/old_docs/API_docs_v100/methods/bots_sendCustomRequest.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
DataJSON = bots.sendCustomRequest({custom_method='string', params=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v100/methods/channels_checkUsername.md b/old_docs/API_docs_v100/methods/channels_checkUsername.md
index 483a2f6f..52365d34 100644
--- a/old_docs/API_docs_v100/methods/channels_checkUsername.md
+++ b/old_docs/API_docs_v100/methods/channels_checkUsername.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Bool = channels.checkUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v100/methods/channels_createChannel.md b/old_docs/API_docs_v100/methods/channels_createChannel.md
index b924e6a6..ecaee0ef 100644
--- a/old_docs/API_docs_v100/methods/channels_createChannel.md
+++ b/old_docs/API_docs_v100/methods/channels_createChannel.md
@@ -45,12 +45,12 @@ Or, if you're into Lua:
Updates = channels.createChannel({broadcast=Bool, megagroup=Bool, title='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_TITLE_EMPTY|No chat title provided|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
+|406|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v100/methods/channels_deleteChannel.md b/old_docs/API_docs_v100/methods/channels_deleteChannel.md
index 53a9c23d..1b8d2d48 100644
--- a/old_docs/API_docs_v100/methods/channels_deleteChannel.md
+++ b/old_docs/API_docs_v100/methods/channels_deleteChannel.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Updates = channels.deleteChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v100/methods/channels_deleteMessages.md b/old_docs/API_docs_v100/methods/channels_deleteMessages.md
index f76a9ad1..463ebad0 100644
--- a/old_docs/API_docs_v100/methods/channels_deleteMessages.md
+++ b/old_docs/API_docs_v100/methods/channels_deleteMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_AffectedMessages = channels.deleteMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v100/methods/channels_deleteUserHistory.md b/old_docs/API_docs_v100/methods/channels_deleteUserHistory.md
index 0a4e7d82..33905a7e 100644
--- a/old_docs/API_docs_v100/methods/channels_deleteUserHistory.md
+++ b/old_docs/API_docs_v100/methods/channels_deleteUserHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedHistory = channels.deleteUserHistory({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v100/methods/channels_editAdmin.md b/old_docs/API_docs_v100/methods/channels_editAdmin.md
index 2ea10cf0..5f311714 100644
--- a/old_docs/API_docs_v100/methods/channels_editAdmin.md
+++ b/old_docs/API_docs_v100/methods/channels_editAdmin.md
@@ -44,19 +44,19 @@ Or, if you're into Lua:
Updates = channels.editAdmin({channel=InputChannel, user_id=InputUser, admin_rights=ChatAdminRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ADMINS_TOO_MUCH|There are too many admins|
-|BOT_CHANNELS_NA|Bots can't edit admin privileges|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
-|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ADMINS_TOO_MUCH|There are too many admins|
+|400|BOT_CHANNELS_NA|Bots can't edit admin privileges|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
+|403|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v100/methods/channels_editBanned.md b/old_docs/API_docs_v100/methods/channels_editBanned.md
index 8b08ed22..b9f1b58a 100644
--- a/old_docs/API_docs_v100/methods/channels_editBanned.md
+++ b/old_docs/API_docs_v100/methods/channels_editBanned.md
@@ -44,14 +44,14 @@ Or, if you're into Lua:
Updates = channels.editBanned({channel=InputChannel, user_id=InputUser, banned_rights=ChatBannedRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ADMIN_INVALID|You're not an admin|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ADMIN_INVALID|You're not an admin|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v100/methods/channels_editPhoto.md b/old_docs/API_docs_v100/methods/channels_editPhoto.md
index bec0ba48..caef32d5 100644
--- a/old_docs/API_docs_v100/methods/channels_editPhoto.md
+++ b/old_docs/API_docs_v100/methods/channels_editPhoto.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editPhoto({channel=InputChannel, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|PHOTO_INVALID|Photo invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|PHOTO_INVALID|Photo invalid|
diff --git a/old_docs/API_docs_v100/methods/channels_editTitle.md b/old_docs/API_docs_v100/methods/channels_editTitle.md
index b5efeb39..d7cb33da 100644
--- a/old_docs/API_docs_v100/methods/channels_editTitle.md
+++ b/old_docs/API_docs_v100/methods/channels_editTitle.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editTitle({channel=InputChannel, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v100/methods/channels_exportMessageLink.md b/old_docs/API_docs_v100/methods/channels_exportMessageLink.md
index 5dea54a7..fc2f248b 100644
--- a/old_docs/API_docs_v100/methods/channels_exportMessageLink.md
+++ b/old_docs/API_docs_v100/methods/channels_exportMessageLink.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
ExportedMessageLink = channels.exportMessageLink({channel=InputChannel, id=int, grouped=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v100/methods/channels_getAdminLog.md b/old_docs/API_docs_v100/methods/channels_getAdminLog.md
index 377c7320..adb87748 100644
--- a/old_docs/API_docs_v100/methods/channels_getAdminLog.md
+++ b/old_docs/API_docs_v100/methods/channels_getAdminLog.md
@@ -48,12 +48,12 @@ Or, if you're into Lua:
channels_AdminLogResults = channels.getAdminLog({channel=InputChannel, q='string', events_filter=ChannelAdminLogEventsFilter, admins={InputUser}, max_id=long, min_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v100/methods/channels_getChannels.md b/old_docs/API_docs_v100/methods/channels_getChannels.md
index 78d50641..95d7a188 100644
--- a/old_docs/API_docs_v100/methods/channels_getChannels.md
+++ b/old_docs/API_docs_v100/methods/channels_getChannels.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = channels.getChannels({id={InputChannel}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v100/methods/channels_getFullChannel.md b/old_docs/API_docs_v100/methods/channels_getFullChannel.md
index 45a8ec72..ebd53de4 100644
--- a/old_docs/API_docs_v100/methods/channels_getFullChannel.md
+++ b/old_docs/API_docs_v100/methods/channels_getFullChannel.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->channels->getFullChannel(['channel' => InputChannel, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = channels.getFullChannel({channel=InputChannel, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v100/methods/channels_getLeftChannels.md b/old_docs/API_docs_v100/methods/channels_getLeftChannels.md
index 2d256964..fac7ae07 100644
--- a/old_docs/API_docs_v100/methods/channels_getLeftChannels.md
+++ b/old_docs/API_docs_v100/methods/channels_getLeftChannels.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_Chats = channels.getLeftChannels({offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TAKEOUT_REQUIRED|A takeout session has to be initialized, first|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|TAKEOUT_REQUIRED|A takeout session has to be initialized, first|
diff --git a/old_docs/API_docs_v100/methods/channels_getMessages.md b/old_docs/API_docs_v100/methods/channels_getMessages.md
index 90cf5a47..f1ae0a4d 100644
--- a/old_docs/API_docs_v100/methods/channels_getMessages.md
+++ b/old_docs/API_docs_v100/methods/channels_getMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_Messages = channels.getMessages({channel=InputChannel, id={InputMessage}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
diff --git a/old_docs/API_docs_v100/methods/channels_getParticipant.md b/old_docs/API_docs_v100/methods/channels_getParticipant.md
index 6633114f..808156fd 100644
--- a/old_docs/API_docs_v100/methods/channels_getParticipant.md
+++ b/old_docs/API_docs_v100/methods/channels_getParticipant.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
channels_ChannelParticipant = channels.getParticipant({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v100/methods/channels_getParticipants.md b/old_docs/API_docs_v100/methods/channels_getParticipants.md
index 5ff242e6..fb7a39df 100644
--- a/old_docs/API_docs_v100/methods/channels_getParticipants.md
+++ b/old_docs/API_docs_v100/methods/channels_getParticipants.md
@@ -46,14 +46,14 @@ Or, if you're into Lua:
channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, filter=ChannelParticipantsFilter, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v100/methods/channels_inviteToChannel.md b/old_docs/API_docs_v100/methods/channels_inviteToChannel.md
index f7093f13..d8c5e88a 100644
--- a/old_docs/API_docs_v100/methods/channels_inviteToChannel.md
+++ b/old_docs/API_docs_v100/methods/channels_inviteToChannel.md
@@ -43,25 +43,25 @@ Or, if you're into Lua:
Updates = channels.inviteToChannel({channel=InputChannel, users={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
-|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_BLOCKED|User blocked|
-|USER_BOT|Bots can only be admins in channels.|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_KICKED|This user was kicked from this supergroup/channel|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
+|400|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_BLOCKED|User blocked|
+|400|USER_BOT|Bots can only be admins in channels.|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_KICKED|This user was kicked from this supergroup/channel|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v100/methods/channels_joinChannel.md b/old_docs/API_docs_v100/methods/channels_joinChannel.md
index b056031a..a4a7c177 100644
--- a/old_docs/API_docs_v100/methods/channels_joinChannel.md
+++ b/old_docs/API_docs_v100/methods/channels_joinChannel.md
@@ -42,15 +42,15 @@ Or, if you're into Lua:
Updates = channels.joinChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
diff --git a/old_docs/API_docs_v100/methods/channels_leaveChannel.md b/old_docs/API_docs_v100/methods/channels_leaveChannel.md
index fdea13ba..6538d443 100644
--- a/old_docs/API_docs_v100/methods/channels_leaveChannel.md
+++ b/old_docs/API_docs_v100/methods/channels_leaveChannel.md
@@ -42,14 +42,14 @@ Or, if you're into Lua:
Updates = channels.leaveChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
-|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
diff --git a/old_docs/API_docs_v100/methods/channels_readHistory.md b/old_docs/API_docs_v100/methods/channels_readHistory.md
index 93dc075f..3532dae0 100644
--- a/old_docs/API_docs_v100/methods/channels_readHistory.md
+++ b/old_docs/API_docs_v100/methods/channels_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readHistory({channel=InputChannel, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v100/methods/channels_readMessageContents.md b/old_docs/API_docs_v100/methods/channels_readMessageContents.md
index 80ddf2b0..8cd8c620 100644
--- a/old_docs/API_docs_v100/methods/channels_readMessageContents.md
+++ b/old_docs/API_docs_v100/methods/channels_readMessageContents.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readMessageContents({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v100/methods/channels_reportSpam.md b/old_docs/API_docs_v100/methods/channels_reportSpam.md
index db80676a..7e273cc5 100644
--- a/old_docs/API_docs_v100/methods/channels_reportSpam.md
+++ b/old_docs/API_docs_v100/methods/channels_reportSpam.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
Bool = channels.reportSpam({channel=InputChannel, user_id=InputUser, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
diff --git a/old_docs/API_docs_v100/methods/channels_setStickers.md b/old_docs/API_docs_v100/methods/channels_setStickers.md
index 10cd68bf..c9b95527 100644
--- a/old_docs/API_docs_v100/methods/channels_setStickers.md
+++ b/old_docs/API_docs_v100/methods/channels_setStickers.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.setStickers({channel=InputChannel, stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PARTICIPANTS_TOO_FEW|Not enough participants|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PARTICIPANTS_TOO_FEW|Not enough participants|
diff --git a/old_docs/API_docs_v100/methods/channels_toggleSignatures.md b/old_docs/API_docs_v100/methods/channels_toggleSignatures.md
index cdfc0fda..f8624946 100644
--- a/old_docs/API_docs_v100/methods/channels_toggleSignatures.md
+++ b/old_docs/API_docs_v100/methods/channels_toggleSignatures.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = channels.toggleSignatures({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v100/methods/channels_updateUsername.md b/old_docs/API_docs_v100/methods/channels_updateUsername.md
index 677712f9..48d250e6 100644
--- a/old_docs/API_docs_v100/methods/channels_updateUsername.md
+++ b/old_docs/API_docs_v100/methods/channels_updateUsername.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Bool = channels.updateUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_OCCUPIED|The provided username is already occupied|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
diff --git a/old_docs/API_docs_v100/methods/contacts_block.md b/old_docs/API_docs_v100/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v100/methods/contacts_block.md
+++ b/old_docs/API_docs_v100/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v100/methods/contacts_deleteContact.md b/old_docs/API_docs_v100/methods/contacts_deleteContact.md
index ba9569e4..a9321d64 100644
--- a/old_docs/API_docs_v100/methods/contacts_deleteContact.md
+++ b/old_docs/API_docs_v100/methods/contacts_deleteContact.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
contacts_Link = contacts.deleteContact({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v100/methods/contacts_deleteContacts.md b/old_docs/API_docs_v100/methods/contacts_deleteContacts.md
index bfc91fdd..3c8e90f0 100644
--- a/old_docs/API_docs_v100/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v100/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v100/methods/contacts_getStatuses.md b/old_docs/API_docs_v100/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v100/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v100/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v100/methods/contacts_getTopPeers.md b/old_docs/API_docs_v100/methods/contacts_getTopPeers.md
index 586fb99e..8c307877 100644
--- a/old_docs/API_docs_v100/methods/contacts_getTopPeers.md
+++ b/old_docs/API_docs_v100/methods/contacts_getTopPeers.md
@@ -52,10 +52,10 @@ Or, if you're into Lua:
contacts_TopPeers = contacts.getTopPeers({correspondents=Bool, bots_pm=Bool, bots_inline=Bool, phone_calls=Bool, forward_users=Bool, forward_chats=Bool, groups=Bool, channels=Bool, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TYPES_EMPTY|No top peer type was provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TYPES_EMPTY|No top peer type was provided|
diff --git a/old_docs/API_docs_v100/methods/contacts_resetTopPeerRating.md b/old_docs/API_docs_v100/methods/contacts_resetTopPeerRating.md
index 43cf1685..787be177 100644
--- a/old_docs/API_docs_v100/methods/contacts_resetTopPeerRating.md
+++ b/old_docs/API_docs_v100/methods/contacts_resetTopPeerRating.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = contacts.resetTopPeerRating({category=TopPeerCategory, peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v100/methods/contacts_resolveUsername.md b/old_docs/API_docs_v100/methods/contacts_resolveUsername.md
index fab56bb1..68f709db 100644
--- a/old_docs/API_docs_v100/methods/contacts_resolveUsername.md
+++ b/old_docs/API_docs_v100/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [contacts\_ResolvedPeer](../types/contacts_ResolvedPeer.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$contacts_ResolvedPeer = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+contacts_ResolvedPeer = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v100/methods/contacts_search.md b/old_docs/API_docs_v100/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v100/methods/contacts_search.md
+++ b/old_docs/API_docs_v100/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v100/methods/contacts_unblock.md b/old_docs/API_docs_v100/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v100/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v100/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v100/methods/folders_editPeerFolders.md b/old_docs/API_docs_v100/methods/folders_editPeerFolders.md
index f4884643..28c8db40 100644
--- a/old_docs/API_docs_v100/methods/folders_editPeerFolders.md
+++ b/old_docs/API_docs_v100/methods/folders_editPeerFolders.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Updates = folders.editPeerFolders({folder_peers={InputFolderPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FOLDER_ID_INVALID|Invalid folder ID|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FOLDER_ID_INVALID|Invalid folder ID|
diff --git a/old_docs/API_docs_v100/methods/help_getCdnConfig.md b/old_docs/API_docs_v100/methods/help_getCdnConfig.md
index 9e047a1d..ba526365 100644
--- a/old_docs/API_docs_v100/methods/help_getCdnConfig.md
+++ b/old_docs/API_docs_v100/methods/help_getCdnConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
CdnConfig = help.getCdnConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v100/methods/help_getConfig.md b/old_docs/API_docs_v100/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v100/methods/help_getConfig.md
+++ b/old_docs/API_docs_v100/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v100/methods/initConnection.md b/old_docs/API_docs_v100/methods/initConnection.md
index 69d29401..5c4bfab9 100644
--- a/old_docs/API_docs_v100/methods/initConnection.md
+++ b/old_docs/API_docs_v100/methods/initConnection.md
@@ -50,11 +50,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', system_lang_code='string', lang_pack='string', lang_code='string', proxy=InputClientProxy, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v100/methods/invokeWithLayer.md b/old_docs/API_docs_v100/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/old_docs/API_docs_v100/methods/invokeWithLayer.md
+++ b/old_docs/API_docs_v100/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v100/methods/langpack_getDifference.md b/old_docs/API_docs_v100/methods/langpack_getDifference.md
index 712d88f4..6995c17d 100644
--- a/old_docs/API_docs_v100/methods/langpack_getDifference.md
+++ b/old_docs/API_docs_v100/methods/langpack_getDifference.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getDifference({lang_pack='string', lang_code='string', from_version=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v100/methods/langpack_getLangPack.md b/old_docs/API_docs_v100/methods/langpack_getLangPack.md
index 55d30529..d2280670 100644
--- a/old_docs/API_docs_v100/methods/langpack_getLangPack.md
+++ b/old_docs/API_docs_v100/methods/langpack_getLangPack.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getLangPack({lang_pack='string', lang_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v100/methods/langpack_getLanguages.md b/old_docs/API_docs_v100/methods/langpack_getLanguages.md
index d4b9734e..686a50f5 100644
--- a/old_docs/API_docs_v100/methods/langpack_getLanguages.md
+++ b/old_docs/API_docs_v100/methods/langpack_getLanguages.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Vector_of_LangPackLanguage = langpack.getLanguages({lang_pack='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v100/methods/langpack_getStrings.md b/old_docs/API_docs_v100/methods/langpack_getStrings.md
index 65f65dfc..f0463eed 100644
--- a/old_docs/API_docs_v100/methods/langpack_getStrings.md
+++ b/old_docs/API_docs_v100/methods/langpack_getStrings.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Vector_of_LangPackString = langpack.getStrings({lang_pack='string', lang_code='string', keys={'string'}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_acceptEncryption.md b/old_docs/API_docs_v100/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v100/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v100/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v100/methods/messages_addChatUser.md b/old_docs/API_docs_v100/methods/messages_addChatUser.md
index bc0d6253..b5e164b2 100644
--- a/old_docs/API_docs_v100/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v100/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
Updates = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v100/methods/messages_checkChatInvite.md b/old_docs/API_docs_v100/methods/messages_checkChatInvite.md
index de28b09b..0d13d55e 100644
--- a/old_docs/API_docs_v100/methods/messages_checkChatInvite.md
+++ b/old_docs/API_docs_v100/methods/messages_checkChatInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ChatInvite = messages.checkChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_createChat.md b/old_docs/API_docs_v100/methods/messages_createChat.md
index 8f6e9672..b2623f1d 100644
--- a/old_docs/API_docs_v100/methods/messages_createChat.md
+++ b/old_docs/API_docs_v100/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v100/methods/messages_deleteChatUser.md b/old_docs/API_docs_v100/methods/messages_deleteChatUser.md
index 63529571..11b9b220 100644
--- a/old_docs/API_docs_v100/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v100/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v100/methods/messages_deleteHistory.md b/old_docs/API_docs_v100/methods/messages_deleteHistory.md
index faddfda5..5a38e404 100644
--- a/old_docs/API_docs_v100/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v100/methods/messages_deleteHistory.md
@@ -45,10 +45,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({just_clear=Bool, revoke=Bool, peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_deleteMessages.md b/old_docs/API_docs_v100/methods/messages_deleteMessages.md
index 4c65080a..41517dd0 100644
--- a/old_docs/API_docs_v100/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v100/methods/messages_deleteMessages.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.deleteMessages({revoke=Bool, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v100/methods/messages_discardEncryption.md b/old_docs/API_docs_v100/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v100/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v100/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_editChatAbout.md b/old_docs/API_docs_v100/methods/messages_editChatAbout.md
index 6c562c12..05fff24f 100644
--- a/old_docs/API_docs_v100/methods/messages_editChatAbout.md
+++ b/old_docs/API_docs_v100/methods/messages_editChatAbout.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.editChatAbout({peer=InputPeer, about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_editChatAdmin.md b/old_docs/API_docs_v100/methods/messages_editChatAdmin.md
index 2b4dc94c..6f6c1376 100644
--- a/old_docs/API_docs_v100/methods/messages_editChatAdmin.md
+++ b/old_docs/API_docs_v100/methods/messages_editChatAdmin.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.editChatAdmin({chat_id=InputPeer, user_id=InputUser, is_admin=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_editChatDefaultBannedRights.md b/old_docs/API_docs_v100/methods/messages_editChatDefaultBannedRights.md
index 30e7836e..a8e075eb 100644
--- a/old_docs/API_docs_v100/methods/messages_editChatDefaultBannedRights.md
+++ b/old_docs/API_docs_v100/methods/messages_editChatDefaultBannedRights.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatDefaultBannedRights({peer=InputPeer, banned_rights=ChatBannedRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BANNED_RIGHTS_INVALID|You provided some invalid flags in the banned rights|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BANNED_RIGHTS_INVALID|You provided some invalid flags in the banned rights|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_editChatPhoto.md b/old_docs/API_docs_v100/methods/messages_editChatPhoto.md
index 2a82c232..a21a03b9 100644
--- a/old_docs/API_docs_v100/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v100/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Updates = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_editChatTitle.md b/old_docs/API_docs_v100/methods/messages_editChatTitle.md
index 2c338ad6..72f78741 100644
--- a/old_docs/API_docs_v100/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v100/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v100/methods/messages_editInlineBotMessage.md b/old_docs/API_docs_v100/methods/messages_editInlineBotMessage.md
index 67313f15..5f7a31c9 100644
--- a/old_docs/API_docs_v100/methods/messages_editInlineBotMessage.md
+++ b/old_docs/API_docs_v100/methods/messages_editInlineBotMessage.md
@@ -96,11 +96,11 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
diff --git a/old_docs/API_docs_v100/methods/messages_editMessage.md b/old_docs/API_docs_v100/methods/messages_editMessage.md
index 720f4285..d394d1aa 100644
--- a/old_docs/API_docs_v100/methods/messages_editMessage.md
+++ b/old_docs/API_docs_v100/methods/messages_editMessage.md
@@ -97,20 +97,20 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v100/methods/messages_exportChatInvite.md b/old_docs/API_docs_v100/methods/messages_exportChatInvite.md
index 9028d4cd..c78d7fb9 100644
--- a/old_docs/API_docs_v100/methods/messages_exportChatInvite.md
+++ b/old_docs/API_docs_v100/methods/messages_exportChatInvite.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
ExportedChatInvite = messages.exportChatInvite({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_faveSticker.md b/old_docs/API_docs_v100/methods/messages_faveSticker.md
index a8b1ab56..9f9f423d 100644
--- a/old_docs/API_docs_v100/methods/messages_faveSticker.md
+++ b/old_docs/API_docs_v100/methods/messages_faveSticker.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.faveSticker({id=InputDocument, unfave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_forwardMessages.md b/old_docs/API_docs_v100/methods/messages_forwardMessages.md
index d2453d05..743fa7a6 100644
--- a/old_docs/API_docs_v100/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v100/methods/messages_forwardMessages.md
@@ -48,29 +48,29 @@ Or, if you're into Lua:
Updates = messages.forwardMessages({silent=Bool, background=Bool, with_my_score=Bool, grouped=Bool, from_peer=InputPeer, id={int}, to_peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v100/methods/messages_getBotCallbackAnswer.md b/old_docs/API_docs_v100/methods/messages_getBotCallbackAnswer.md
index f97fa5b0..3f8cc23b 100644
--- a/old_docs/API_docs_v100/methods/messages_getBotCallbackAnswer.md
+++ b/old_docs/API_docs_v100/methods/messages_getBotCallbackAnswer.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
messages_BotCallbackAnswer = messages.getBotCallbackAnswer({game=Bool, peer=InputPeer, msg_id=int, data='bytes', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v100/methods/messages_getChats.md b/old_docs/API_docs_v100/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/old_docs/API_docs_v100/methods/messages_getChats.md
+++ b/old_docs/API_docs_v100/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_getCommonChats.md b/old_docs/API_docs_v100/methods/messages_getCommonChats.md
index 9470a0ee..cff23c3f 100644
--- a/old_docs/API_docs_v100/methods/messages_getCommonChats.md
+++ b/old_docs/API_docs_v100/methods/messages_getCommonChats.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_Chats = messages.getCommonChats({user_id=InputUser, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_getDhConfig.md b/old_docs/API_docs_v100/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v100/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v100/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_getDialogs.md b/old_docs/API_docs_v100/methods/messages_getDialogs.md
index 7e6b77a6..d6bcd23d 100644
--- a/old_docs/API_docs_v100/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v100/methods/messages_getDialogs.md
@@ -48,13 +48,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({exclude_pinned=Bool, folder_id=int, offset_date=int, offset_id=int, offset_peer=InputPeer, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v100/methods/messages_getDocumentByHash.md b/old_docs/API_docs_v100/methods/messages_getDocumentByHash.md
index 73a235d5..06469c52 100644
--- a/old_docs/API_docs_v100/methods/messages_getDocumentByHash.md
+++ b/old_docs/API_docs_v100/methods/messages_getDocumentByHash.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Document = messages.getDocumentByHash({sha256='bytes', size=int, mime_type='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_getFullChat.md b/old_docs/API_docs_v100/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v100/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v100/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_getGameHighScores.md b/old_docs/API_docs_v100/methods/messages_getGameHighScores.md
index 249e1d09..5c484bbb 100644
--- a/old_docs/API_docs_v100/methods/messages_getGameHighScores.md
+++ b/old_docs/API_docs_v100/methods/messages_getGameHighScores.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
messages_HighScores = messages.getGameHighScores({peer=InputPeer, id=int, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v100/methods/messages_getHistory.md b/old_docs/API_docs_v100/methods/messages_getHistory.md
index d623a61e..a0389d7b 100644
--- a/old_docs/API_docs_v100/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v100/methods/messages_getHistory.md
@@ -49,16 +49,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset_id=int, offset_date=int, add_offset=int, limit=int, max_id=int, min_id=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v100/methods/messages_getInlineBotResults.md b/old_docs/API_docs_v100/methods/messages_getInlineBotResults.md
index 1efcb412..17d678b7 100644
--- a/old_docs/API_docs_v100/methods/messages_getInlineBotResults.md
+++ b/old_docs/API_docs_v100/methods/messages_getInlineBotResults.md
@@ -46,13 +46,13 @@ Or, if you're into Lua:
messages_BotResults = messages.getInlineBotResults({bot=InputUser, peer=InputPeer, geo_point=InputGeoPoint, query='string', offset='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
-|BOT_INVALID|This is not a valid bot|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
+|400|BOT_INVALID|This is not a valid bot|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v100/methods/messages_getInlineGameHighScores.md b/old_docs/API_docs_v100/methods/messages_getInlineGameHighScores.md
index e68c6db8..ac33b6b8 100644
--- a/old_docs/API_docs_v100/methods/messages_getInlineGameHighScores.md
+++ b/old_docs/API_docs_v100/methods/messages_getInlineGameHighScores.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_HighScores = messages.getInlineGameHighScores({id=InputBotInlineMessageID, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v100/methods/messages_getMessageEditData.md b/old_docs/API_docs_v100/methods/messages_getMessageEditData.md
index 7f1b7164..b907d78c 100644
--- a/old_docs/API_docs_v100/methods/messages_getMessageEditData.md
+++ b/old_docs/API_docs_v100/methods/messages_getMessageEditData.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_MessageEditData = messages.getMessageEditData({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v100/methods/messages_getMessagesViews.md b/old_docs/API_docs_v100/methods/messages_getMessagesViews.md
index 3d490315..143e568c 100644
--- a/old_docs/API_docs_v100/methods/messages_getMessagesViews.md
+++ b/old_docs/API_docs_v100/methods/messages_getMessagesViews.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
Vector_of_int = messages.getMessagesViews({peer=InputPeer, id={int}, increment=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_getPeerDialogs.md b/old_docs/API_docs_v100/methods/messages_getPeerDialogs.md
index 02eb9b43..17e0d11e 100644
--- a/old_docs/API_docs_v100/methods/messages_getPeerDialogs.md
+++ b/old_docs/API_docs_v100/methods/messages_getPeerDialogs.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPeerDialogs({peers={InputDialogPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_getPeerSettings.md b/old_docs/API_docs_v100/methods/messages_getPeerSettings.md
index 26dafb9b..69032ff5 100644
--- a/old_docs/API_docs_v100/methods/messages_getPeerSettings.md
+++ b/old_docs/API_docs_v100/methods/messages_getPeerSettings.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
PeerSettings = messages.getPeerSettings({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_getPinnedDialogs.md b/old_docs/API_docs_v100/methods/messages_getPinnedDialogs.md
index 8d23e4fa..7fbfecd0 100644
--- a/old_docs/API_docs_v100/methods/messages_getPinnedDialogs.md
+++ b/old_docs/API_docs_v100/methods/messages_getPinnedDialogs.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPinnedDialogs({folder_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FOLDER_ID_INVALID|Invalid folder ID|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FOLDER_ID_INVALID|Invalid folder ID|
diff --git a/old_docs/API_docs_v100/methods/messages_getStatsURL.md b/old_docs/API_docs_v100/methods/messages_getStatsURL.md
index 4f7c08d9..f0c44447 100644
--- a/old_docs/API_docs_v100/methods/messages_getStatsURL.md
+++ b/old_docs/API_docs_v100/methods/messages_getStatsURL.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
StatsURL = messages.getStatsURL({dark=Bool, peer=InputPeer, params='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_getStickerSet.md b/old_docs/API_docs_v100/methods/messages_getStickerSet.md
index 57bce84d..487316cc 100644
--- a/old_docs/API_docs_v100/methods/messages_getStickerSet.md
+++ b/old_docs/API_docs_v100/methods/messages_getStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_StickerSet = messages.getStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_getUnreadMentions.md b/old_docs/API_docs_v100/methods/messages_getUnreadMentions.md
index 1fa1f269..923229eb 100644
--- a/old_docs/API_docs_v100/methods/messages_getUnreadMentions.md
+++ b/old_docs/API_docs_v100/methods/messages_getUnreadMentions.md
@@ -47,10 +47,10 @@ Or, if you're into Lua:
messages_Messages = messages.getUnreadMentions({peer=InputPeer, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_getWebPage.md b/old_docs/API_docs_v100/methods/messages_getWebPage.md
index ce51ff41..63ef5e93 100644
--- a/old_docs/API_docs_v100/methods/messages_getWebPage.md
+++ b/old_docs/API_docs_v100/methods/messages_getWebPage.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
WebPage = messages.getWebPage({url='string', hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|WC_CONVERT_URL_INVALID|WC convert URL invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|WC_CONVERT_URL_INVALID|WC convert URL invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_hideReportSpam.md b/old_docs/API_docs_v100/methods/messages_hideReportSpam.md
index c4bf7399..57756d2e 100644
--- a/old_docs/API_docs_v100/methods/messages_hideReportSpam.md
+++ b/old_docs/API_docs_v100/methods/messages_hideReportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.hideReportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_importChatInvite.md b/old_docs/API_docs_v100/methods/messages_importChatInvite.md
index 12120867..101b4b19 100644
--- a/old_docs/API_docs_v100/methods/messages_importChatInvite.md
+++ b/old_docs/API_docs_v100/methods/messages_importChatInvite.md
@@ -42,16 +42,16 @@ Or, if you're into Lua:
Updates = messages.importChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v100/methods/messages_installStickerSet.md b/old_docs/API_docs_v100/methods/messages_installStickerSet.md
index 21a57a85..67f2aca0 100644
--- a/old_docs/API_docs_v100/methods/messages_installStickerSet.md
+++ b/old_docs/API_docs_v100/methods/messages_installStickerSet.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_StickerSetInstallResult = messages.installStickerSet({stickerset=InputStickerSet, archived=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_migrateChat.md b/old_docs/API_docs_v100/methods/messages_migrateChat.md
index a72f4c11..ee4010eb 100644
--- a/old_docs/API_docs_v100/methods/messages_migrateChat.md
+++ b/old_docs/API_docs_v100/methods/messages_migrateChat.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
Updates = messages.migrateChat({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v100/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v100/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v100/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v100/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v100/methods/messages_readHistory.md b/old_docs/API_docs_v100/methods/messages_readHistory.md
index 2ad5cd09..a7f0eca7 100644
--- a/old_docs/API_docs_v100/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v100/methods/messages_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.readHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v100/methods/messages_receivedQueue.md b/old_docs/API_docs_v100/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v100/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v100/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v100/methods/messages_reorderPinnedDialogs.md b/old_docs/API_docs_v100/methods/messages_reorderPinnedDialogs.md
index 70482817..d83341a6 100644
--- a/old_docs/API_docs_v100/methods/messages_reorderPinnedDialogs.md
+++ b/old_docs/API_docs_v100/methods/messages_reorderPinnedDialogs.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.reorderPinnedDialogs({force=Bool, folder_id=int, order={InputDialogPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_reportEncryptedSpam.md b/old_docs/API_docs_v100/methods/messages_reportEncryptedSpam.md
index 9b1e868b..aeac27ef 100644
--- a/old_docs/API_docs_v100/methods/messages_reportEncryptedSpam.md
+++ b/old_docs/API_docs_v100/methods/messages_reportEncryptedSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportEncryptedSpam({peer=InputEncryptedChat, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_reportSpam.md b/old_docs/API_docs_v100/methods/messages_reportSpam.md
index e92fba13..dc256e55 100644
--- a/old_docs/API_docs_v100/methods/messages_reportSpam.md
+++ b/old_docs/API_docs_v100/methods/messages_reportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_requestEncryption.md b/old_docs/API_docs_v100/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v100/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v100/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_saveDraft.md b/old_docs/API_docs_v100/methods/messages_saveDraft.md
index 791ce234..ea6d407e 100644
--- a/old_docs/API_docs_v100/methods/messages_saveDraft.md
+++ b/old_docs/API_docs_v100/methods/messages_saveDraft.md
@@ -89,10 +89,10 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_saveGif.md b/old_docs/API_docs_v100/methods/messages_saveGif.md
index f504ff9e..010e17ec 100644
--- a/old_docs/API_docs_v100/methods/messages_saveGif.md
+++ b/old_docs/API_docs_v100/methods/messages_saveGif.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.saveGif({id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|GIF_ID_INVALID|The provided GIF ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|GIF_ID_INVALID|The provided GIF ID is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_saveRecentSticker.md b/old_docs/API_docs_v100/methods/messages_saveRecentSticker.md
index 98c74efd..072b6fe9 100644
--- a/old_docs/API_docs_v100/methods/messages_saveRecentSticker.md
+++ b/old_docs/API_docs_v100/methods/messages_saveRecentSticker.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.saveRecentSticker({attached=Bool, id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_search.md b/old_docs/API_docs_v100/methods/messages_search.md
index 83cb34c6..07529b40 100644
--- a/old_docs/API_docs_v100/methods/messages_search.md
+++ b/old_docs/API_docs_v100/methods/messages_search.md
@@ -53,16 +53,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({peer=InputPeer, q='string', from_id=InputUser, filter=MessagesFilter, min_date=int, max_date=int, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_searchGifs.md b/old_docs/API_docs_v100/methods/messages_searchGifs.md
index 7be4173b..1602d35e 100644
--- a/old_docs/API_docs_v100/methods/messages_searchGifs.md
+++ b/old_docs/API_docs_v100/methods/messages_searchGifs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_FoundGifs = messages.searchGifs({q='string', offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v100/methods/messages_searchGlobal.md b/old_docs/API_docs_v100/methods/messages_searchGlobal.md
index c1d4724c..113b2568 100644
--- a/old_docs/API_docs_v100/methods/messages_searchGlobal.md
+++ b/old_docs/API_docs_v100/methods/messages_searchGlobal.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
messages_Messages = messages.searchGlobal({q='string', offset_rate=int, offset_peer=InputPeer, offset_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v100/methods/messages_sendEncrypted.md b/old_docs/API_docs_v100/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v100/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v100/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v100/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v100/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v100/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v100/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v100/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v100/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v100/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v100/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v100/methods/messages_sendInlineBotResult.md b/old_docs/API_docs_v100/methods/messages_sendInlineBotResult.md
index 96d7571a..642ba34f 100644
--- a/old_docs/API_docs_v100/methods/messages_sendInlineBotResult.md
+++ b/old_docs/API_docs_v100/methods/messages_sendInlineBotResult.md
@@ -49,15 +49,15 @@ Or, if you're into Lua:
Updates = messages.sendInlineBotResult({silent=Bool, background=Bool, clear_draft=Bool, hide_via=Bool, peer=InputPeer, reply_to_msg_id=int, query_id=long, id='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INLINE_RESULT_EXPIRED|The inline query expired|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|QUERY_ID_EMPTY|The query ID is empty|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INLINE_RESULT_EXPIRED|The inline query expired|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|QUERY_ID_EMPTY|The query ID is empty|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v100/methods/messages_sendMedia.md b/old_docs/API_docs_v100/methods/messages_sendMedia.md
index 44c604c6..a2244583 100644
--- a/old_docs/API_docs_v100/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v100/methods/messages_sendMedia.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v100/methods/messages_sendMessage.md b/old_docs/API_docs_v100/methods/messages_sendMessage.md
index 5641ebc3..e0ab305d 100644
--- a/old_docs/API_docs_v100/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v100/methods/messages_sendMessage.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v100/methods/messages_sendMultiMedia.md b/old_docs/API_docs_v100/methods/messages_sendMultiMedia.md
index 9ebdcb88..5684a6d2 100644
--- a/old_docs/API_docs_v100/methods/messages_sendMultiMedia.md
+++ b/old_docs/API_docs_v100/methods/messages_sendMultiMedia.md
@@ -47,11 +47,11 @@ Or, if you're into Lua:
Updates = messages.sendMultiMedia({silent=Bool, background=Bool, clear_draft=Bool, peer=InputPeer, reply_to_msg_id=int, multi_media={InputSingleMedia}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_sendScreenshotNotification.md b/old_docs/API_docs_v100/methods/messages_sendScreenshotNotification.md
index 3f5bb36d..4e4e40f5 100644
--- a/old_docs/API_docs_v100/methods/messages_sendScreenshotNotification.md
+++ b/old_docs/API_docs_v100/methods/messages_sendScreenshotNotification.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = messages.sendScreenshotNotification({peer=InputPeer, reply_to_msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_setBotCallbackAnswer.md b/old_docs/API_docs_v100/methods/messages_setBotCallbackAnswer.md
index ed058b4f..630ca61c 100644
--- a/old_docs/API_docs_v100/methods/messages_setBotCallbackAnswer.md
+++ b/old_docs/API_docs_v100/methods/messages_setBotCallbackAnswer.md
@@ -52,11 +52,11 @@ Bool = messages.setBotCallbackAnswer({alert=Bool, query_id=long, message='string
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|URL_INVALID|Invalid URL provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|URL_INVALID|Invalid URL provided|
diff --git a/old_docs/API_docs_v100/methods/messages_setBotPrecheckoutResults.md b/old_docs/API_docs_v100/methods/messages_setBotPrecheckoutResults.md
index cc615123..d6e0e61b 100644
--- a/old_docs/API_docs_v100/methods/messages_setBotPrecheckoutResults.md
+++ b/old_docs/API_docs_v100/methods/messages_setBotPrecheckoutResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotPrecheckoutResults({success=Bool, query_id=long, error='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ERROR_TEXT_EMPTY|The provided error message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ERROR_TEXT_EMPTY|The provided error message is empty|
diff --git a/old_docs/API_docs_v100/methods/messages_setBotShippingResults.md b/old_docs/API_docs_v100/methods/messages_setBotShippingResults.md
index f3a86f4f..adc4f64f 100644
--- a/old_docs/API_docs_v100/methods/messages_setBotShippingResults.md
+++ b/old_docs/API_docs_v100/methods/messages_setBotShippingResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotShippingResults({query_id=long, error='string', shipping_options={ShippingOption}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v100/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v100/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v100/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_setGameScore.md b/old_docs/API_docs_v100/methods/messages_setGameScore.md
index 548ee889..429b04c6 100644
--- a/old_docs/API_docs_v100/methods/messages_setGameScore.md
+++ b/old_docs/API_docs_v100/methods/messages_setGameScore.md
@@ -47,12 +47,12 @@ Or, if you're into Lua:
Updates = messages.setGameScore({edit_message=Bool, force=Bool, peer=InputPeer, id=int, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v100/methods/messages_setInlineBotResults.md b/old_docs/API_docs_v100/methods/messages_setInlineBotResults.md
index ab388e39..df4c30d4 100644
--- a/old_docs/API_docs_v100/methods/messages_setInlineBotResults.md
+++ b/old_docs/API_docs_v100/methods/messages_setInlineBotResults.md
@@ -48,23 +48,23 @@ Or, if you're into Lua:
Bool = messages.setInlineBotResults({gallery=Bool, private=Bool, query_id=long, results={InputBotInlineResult}, cache_time=int, next_offset='string', switch_pm=InlineBotSwitchPM, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ARTICLE_TITLE_EMPTY|The title of the article is empty|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|PHOTO_INVALID|Photo invalid|
-|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
-|QUERY_ID_INVALID|The query ID is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|RESULT_TYPE_INVALID|Result type invalid|
-|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
-|START_PARAM_INVALID|Start parameter invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ARTICLE_TITLE_EMPTY|The title of the article is empty|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|PHOTO_INVALID|Photo invalid|
+|400|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|RESULT_TYPE_INVALID|Result type invalid|
+|400|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
+|400|START_PARAM_INVALID|Start parameter invalid|
+|403|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v100/methods/messages_setInlineGameScore.md b/old_docs/API_docs_v100/methods/messages_setInlineGameScore.md
index 5eeb1540..62b163d5 100644
--- a/old_docs/API_docs_v100/methods/messages_setInlineGameScore.md
+++ b/old_docs/API_docs_v100/methods/messages_setInlineGameScore.md
@@ -46,11 +46,11 @@ Or, if you're into Lua:
Bool = messages.setInlineGameScore({edit_message=Bool, force=Bool, id=InputBotInlineMessageID, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v100/methods/messages_setTyping.md b/old_docs/API_docs_v100/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v100/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v100/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v100/methods/messages_startBot.md b/old_docs/API_docs_v100/methods/messages_startBot.md
index aa2b2d00..4bf12aa6 100644
--- a/old_docs/API_docs_v100/methods/messages_startBot.md
+++ b/old_docs/API_docs_v100/methods/messages_startBot.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = messages.startBot({bot=InputUser, peer=InputPeer, start_param='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INVALID|This is not a valid bot|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|START_PARAM_EMPTY|The start parameter is empty|
-|START_PARAM_INVALID|Start parameter invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INVALID|This is not a valid bot|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|START_PARAM_EMPTY|The start parameter is empty|
+|400|START_PARAM_INVALID|Start parameter invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_toggleDialogPin.md b/old_docs/API_docs_v100/methods/messages_toggleDialogPin.md
index 22c6d15d..ff46ef21 100644
--- a/old_docs/API_docs_v100/methods/messages_toggleDialogPin.md
+++ b/old_docs/API_docs_v100/methods/messages_toggleDialogPin.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.toggleDialogPin({pinned=Bool, peer=InputDialogPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_uninstallStickerSet.md b/old_docs/API_docs_v100/methods/messages_uninstallStickerSet.md
index 59abc510..6b7a2006 100644
--- a/old_docs/API_docs_v100/methods/messages_uninstallStickerSet.md
+++ b/old_docs/API_docs_v100/methods/messages_uninstallStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.uninstallStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v100/methods/messages_uploadMedia.md b/old_docs/API_docs_v100/methods/messages_uploadMedia.md
index afc806fe..09fc074c 100644
--- a/old_docs/API_docs_v100/methods/messages_uploadMedia.md
+++ b/old_docs/API_docs_v100/methods/messages_uploadMedia.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
MessageMedia = messages.uploadMedia({peer=InputPeer, media=InputMedia, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v100/methods/payments_getPaymentForm.md b/old_docs/API_docs_v100/methods/payments_getPaymentForm.md
index e8e04f37..4c28121f 100644
--- a/old_docs/API_docs_v100/methods/payments_getPaymentForm.md
+++ b/old_docs/API_docs_v100/methods/payments_getPaymentForm.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentForm = payments.getPaymentForm({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v100/methods/payments_getPaymentReceipt.md b/old_docs/API_docs_v100/methods/payments_getPaymentReceipt.md
index acb1c209..0e2f76a8 100644
--- a/old_docs/API_docs_v100/methods/payments_getPaymentReceipt.md
+++ b/old_docs/API_docs_v100/methods/payments_getPaymentReceipt.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentReceipt = payments.getPaymentReceipt({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v100/methods/payments_sendPaymentForm.md b/old_docs/API_docs_v100/methods/payments_sendPaymentForm.md
index b8fa905d..1910ede8 100644
--- a/old_docs/API_docs_v100/methods/payments_sendPaymentForm.md
+++ b/old_docs/API_docs_v100/methods/payments_sendPaymentForm.md
@@ -45,10 +45,10 @@ Or, if you're into Lua:
payments_PaymentResult = payments.sendPaymentForm({msg_id=int, requested_info_id='string', shipping_option_id='string', credentials=InputPaymentCredentials, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v100/methods/payments_validateRequestedInfo.md b/old_docs/API_docs_v100/methods/payments_validateRequestedInfo.md
index 3b9da7e6..f18e1660 100644
--- a/old_docs/API_docs_v100/methods/payments_validateRequestedInfo.md
+++ b/old_docs/API_docs_v100/methods/payments_validateRequestedInfo.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
payments_ValidatedRequestedInfo = payments.validateRequestedInfo({save=Bool, msg_id=int, info=PaymentRequestedInfo, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v100/methods/phone_acceptCall.md b/old_docs/API_docs_v100/methods/phone_acceptCall.md
index b75ac65b..f5c58f01 100644
--- a/old_docs/API_docs_v100/methods/phone_acceptCall.md
+++ b/old_docs/API_docs_v100/methods/phone_acceptCall.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->acceptCall(['peer' => InputPhoneCall, 'g_b' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.acceptCall({peer=InputPhoneCall, g_b='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
diff --git a/old_docs/API_docs_v100/methods/phone_confirmCall.md b/old_docs/API_docs_v100/methods/phone_confirmCall.md
index 1a75563d..468307cc 100644
--- a/old_docs/API_docs_v100/methods/phone_confirmCall.md
+++ b/old_docs/API_docs_v100/methods/phone_confirmCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->confirmCall(['peer' => InputPhoneCall, 'g_a' => 'bytes', 'key_fingerprint' => long, 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.confirmCall({peer=InputPhoneCall, g_a='bytes', key_fingerprint=long, protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v100/methods/phone_discardCall.md b/old_docs/API_docs_v100/methods/phone_discardCall.md
index e50456eb..b4fec97a 100644
--- a/old_docs/API_docs_v100/methods/phone_discardCall.md
+++ b/old_docs/API_docs_v100/methods/phone_discardCall.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|video|[Bool](../types/Bool.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Optional|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|duration|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|reason|[PhoneCallDiscardReason](../types/PhoneCallDiscardReason.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|connection\_id|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [Updates](../types/Updates.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Updates = $MadelineProto->phone->discardCall(['video' => Bool, 'peer' => InputPhoneCall, 'duration' => int, 'reason' => PhoneCallDiscardReason, 'connection_id' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Updates = phone.discardCall({video=Bool, peer=InputPhoneCall, duration=int, reason=PhoneCallDiscardReason, connection_id=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v100/methods/phone_receivedCall.md b/old_docs/API_docs_v100/methods/phone_receivedCall.md
index c43bc8ac..6091424b 100644
--- a/old_docs/API_docs_v100/methods/phone_receivedCall.md
+++ b/old_docs/API_docs_v100/methods/phone_receivedCall.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Bool = phone.receivedCall({peer=InputPhoneCall, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_ALREADY_DECLINED|The call was already declined|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v100/methods/phone_requestCall.md b/old_docs/API_docs_v100/methods/phone_requestCall.md
index 9b8df564..e3894214 100644
--- a/old_docs/API_docs_v100/methods/phone_requestCall.md
+++ b/old_docs/API_docs_v100/methods/phone_requestCall.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|video|[Bool](../types/Bool.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Optional|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Optional|
+|g\_a\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->requestCall(['video' => Bool, 'user_id' => InputUser, 'g_a_hash' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.requestCall({video=Bool, user_id=InputUser, g_a_hash='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
+|400|PARTICIPANT_VERSION_OUTDATED|The other participant does not use an up to date telegram client with support for calls|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|403|USER_IS_BLOCKED|You were blocked by this user|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v100/methods/phone_saveCallDebug.md b/old_docs/API_docs_v100/methods/phone_saveCallDebug.md
index 8acbc353..1e793c05 100644
--- a/old_docs/API_docs_v100/methods/phone_saveCallDebug.md
+++ b/old_docs/API_docs_v100/methods/phone_saveCallDebug.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = phone.saveCallDebug({peer=InputPhoneCall, debug=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
-|DATA_JSON_INVALID|The provided JSON data is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|DATA_JSON_INVALID|The provided JSON data is invalid|
diff --git a/old_docs/API_docs_v100/methods/phone_setCallRating.md b/old_docs/API_docs_v100/methods/phone_setCallRating.md
index 5977c943..df40c478 100644
--- a/old_docs/API_docs_v100/methods/phone_setCallRating.md
+++ b/old_docs/API_docs_v100/methods/phone_setCallRating.md
@@ -45,10 +45,10 @@ Or, if you're into Lua:
Updates = phone.setCallRating({user_initiative=Bool, peer=InputPhoneCall, rating=int, comment='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v100/methods/photos_getUserPhotos.md b/old_docs/API_docs_v100/methods/photos_getUserPhotos.md
index 57f5772b..a01f3180 100644
--- a/old_docs/API_docs_v100/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v100/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v100/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v100/methods/photos_updateProfilePhoto.md
index cca2fe30..f7c91ec6 100644
--- a/old_docs/API_docs_v100/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v100/methods/photos_updateProfilePhoto.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v100/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v100/methods/photos_uploadProfilePhoto.md
index 457bade8..badde2de 100644
--- a/old_docs/API_docs_v100/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v100/methods/photos_uploadProfilePhoto.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v100/methods/stickers_addStickerToSet.md b/old_docs/API_docs_v100/methods/stickers_addStickerToSet.md
index 78e8437c..b1fa2aad 100644
--- a/old_docs/API_docs_v100/methods/stickers_addStickerToSet.md
+++ b/old_docs/API_docs_v100/methods/stickers_addStickerToSet.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.addStickerToSet({stickerset=InputStickerSet, sticker=InputStickerSetItem, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v100/methods/stickers_changeStickerPosition.md b/old_docs/API_docs_v100/methods/stickers_changeStickerPosition.md
index cddc1cbb..98dde67e 100644
--- a/old_docs/API_docs_v100/methods/stickers_changeStickerPosition.md
+++ b/old_docs/API_docs_v100/methods/stickers_changeStickerPosition.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.changeStickerPosition({sticker=InputDocument, position=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/old_docs/API_docs_v100/methods/stickers_createStickerSet.md b/old_docs/API_docs_v100/methods/stickers_createStickerSet.md
index 41e4ad11..741e0ad6 100644
--- a/old_docs/API_docs_v100/methods/stickers_createStickerSet.md
+++ b/old_docs/API_docs_v100/methods/stickers_createStickerSet.md
@@ -46,18 +46,18 @@ Or, if you're into Lua:
messages_StickerSet = stickers.createStickerSet({masks=Bool, user_id=InputUser, title='string', short_name='string', stickers={InputStickerSetItem}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|PACK_SHORT_NAME_INVALID|Short pack name invalid|
-|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|STICKER_EMOJI_INVALID|Sticker emoji invalid|
-|STICKER_FILE_INVALID|Sticker file invalid|
-|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
-|STICKERS_EMPTY|No sticker provided|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|PACK_SHORT_NAME_INVALID|Short pack name invalid|
+|400|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|STICKER_EMOJI_INVALID|Sticker emoji invalid|
+|400|STICKER_FILE_INVALID|Sticker file invalid|
+|400|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
+|400|STICKERS_EMPTY|No sticker provided|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v100/methods/stickers_removeStickerFromSet.md b/old_docs/API_docs_v100/methods/stickers_removeStickerFromSet.md
index ea4621f2..d1fc4339 100644
--- a/old_docs/API_docs_v100/methods/stickers_removeStickerFromSet.md
+++ b/old_docs/API_docs_v100/methods/stickers_removeStickerFromSet.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.removeStickerFromSet({sticker=InputDocument, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/old_docs/API_docs_v100/methods/updates_getChannelDifference.md b/old_docs/API_docs_v100/methods/updates_getChannelDifference.md
index 6fa79529..9735c14a 100644
--- a/old_docs/API_docs_v100/methods/updates_getChannelDifference.md
+++ b/old_docs/API_docs_v100/methods/updates_getChannelDifference.md
@@ -7,8 +7,56 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|force|[Bool](../types/Bool.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|filter|[ChannelMessagesFilter](../types/ChannelMessagesFilter.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_ChannelDifference](../types/updates_ChannelDifference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_ChannelDifference = $MadelineProto->updates->getChannelDifference(['force' => Bool, 'channel' => InputChannel, 'filter' => ChannelMessagesFilter, 'pts' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_ChannelDifference = updates.getChannelDifference({force=Bool, channel=InputChannel, filter=ChannelMessagesFilter, pts=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|400|RANGES_INVALID|Invalid range provided|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v100/methods/updates_getDifference.md b/old_docs/API_docs_v100/methods/updates_getDifference.md
index 33e7d7f2..bcfac4e2 100644
--- a/old_docs/API_docs_v100/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v100/methods/updates_getDifference.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|pts\_total\_limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'pts_total_limit' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, pts_total_limit=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v100/methods/updates_getState.md b/old_docs/API_docs_v100/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v100/methods/updates_getState.md
+++ b/old_docs/API_docs_v100/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v100/methods/upload_getCdnFile.md b/old_docs/API_docs_v100/methods/upload_getCdnFile.md
index 5e5b3f43..be9ad311 100644
--- a/old_docs/API_docs_v100/methods/upload_getCdnFile.md
+++ b/old_docs/API_docs_v100/methods/upload_getCdnFile.md
@@ -7,8 +7,40 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_CdnFile](../types/upload_CdnFile.md)
+
+### Can bots use this method: **NO**
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_CdnFile = $MadelineProto->upload->getCdnFile(['file_token' => 'bytes', 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_CdnFile = upload.getCdnFile({file_token='bytes', offset=int, limit=int, })
+```
+
diff --git a/old_docs/API_docs_v100/methods/upload_getCdnFileHashes.md b/old_docs/API_docs_v100/methods/upload_getCdnFileHashes.md
index ea6a8e75..d957578e 100644
--- a/old_docs/API_docs_v100/methods/upload_getCdnFileHashes.md
+++ b/old_docs/API_docs_v100/methods/upload_getCdnFileHashes.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->getCdnFileHashes(['file_token' => 'bytes', 'offset' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.getCdnFileHashes({file_token='bytes', offset=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/old_docs/API_docs_v100/methods/upload_getFile.md b/old_docs/API_docs_v100/methods/upload_getFile.md
index c72e6090..d8b433d6 100644
--- a/old_docs/API_docs_v100/methods/upload_getFile.md
+++ b/old_docs/API_docs_v100/methods/upload_getFile.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v100/methods/upload_getFileHashes.md b/old_docs/API_docs_v100/methods/upload_getFileHashes.md
index debeb60d..e03dd5c5 100644
--- a/old_docs/API_docs_v100/methods/upload_getFileHashes.md
+++ b/old_docs/API_docs_v100/methods/upload_getFileHashes.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+Get file hashes
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | The file | Yes|
+|offset|[int](../types/int.md) | Offset | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->getFileHashes(['location' => InputFileLocation, 'offset' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.getFileHashes({location=InputFileLocation, offset=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LOCATION_INVALID|The provided location is invalid|
diff --git a/old_docs/API_docs_v100/methods/upload_getWebFile.md b/old_docs/API_docs_v100/methods/upload_getWebFile.md
index 21179a66..7b63f96c 100644
--- a/old_docs/API_docs_v100/methods/upload_getWebFile.md
+++ b/old_docs/API_docs_v100/methods/upload_getWebFile.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
upload_WebFile = upload.getWebFile({location=InputWebFileLocation, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LOCATION_INVALID|The provided location is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LOCATION_INVALID|The provided location is invalid|
diff --git a/old_docs/API_docs_v100/methods/upload_reuploadCdnFile.md b/old_docs/API_docs_v100/methods/upload_reuploadCdnFile.md
index cc20d5e3..f531557c 100644
--- a/old_docs/API_docs_v100/methods/upload_reuploadCdnFile.md
+++ b/old_docs/API_docs_v100/methods/upload_reuploadCdnFile.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|request\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->reuploadCdnFile(['file_token' => 'bytes', 'request_token' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.reuploadCdnFile({file_token='bytes', request_token='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/old_docs/API_docs_v100/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v100/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v100/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v100/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v100/methods/upload_saveFilePart.md b/old_docs/API_docs_v100/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v100/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v100/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v100/methods/users_getFullUser.md b/old_docs/API_docs_v100/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v100/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v100/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v100/methods/users_getUsers.md b/old_docs/API_docs_v100/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v100/methods/users_getUsers.md
+++ b/old_docs/API_docs_v100/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v100/methods/users_setSecureValueErrors.md b/old_docs/API_docs_v100/methods/users_setSecureValueErrors.md
index 40e398ab..661137fb 100644
--- a/old_docs/API_docs_v100/methods/users_setSecureValueErrors.md
+++ b/old_docs/API_docs_v100/methods/users_setSecureValueErrors.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = users.setSecureValueErrors({id=InputUser, errors={SecureValueError}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v102/methods/README.md b/old_docs/API_docs_v102/methods/README.md
index 5ca33d8d..a161eab6 100644
--- a/old_docs/API_docs_v102/methods/README.md
+++ b/old_docs/API_docs_v102/methods/README.md
@@ -30,547 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Accept URL authorization: messages.acceptUrlAuth
-
-* Accept contact: contacts.acceptContact
-
-* Accept telegram passport authorization: account.acceptAuthorization
-
-* Accept telegram's TOS: help.acceptTermsOfService
-
-* Add a sticker set: messages.installStickerSet
-
-* Add a sticker to favorites: messages.faveSticker
-
-* Add a sticker to recent stickers: messages.saveRecentSticker
-
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add contact: contacts.addContact
-
-* Add phone number as contact: contacts.importContacts
-
-* Add sticker to stickerset: stickers.addStickerToSet
-
-* Add users to channel/supergroup: channels.inviteToChannel
-
-* Block a user: contacts.block
-
-* Bots only: get telegram passport authorization form: account.getAuthorizationForm
-
-* Bots only: send payment form: payments.sendPaymentForm
-
-* Bots only: set precheckout results: messages.setBotPrecheckoutResults
-
-* Bots only: set shipping results: messages.setBotShippingResults
-
-* Bots only: set the callback answer (after a button was clicked): messages.setBotCallbackAnswer
-
-* Bots only: set the results of an inline query: messages.setInlineBotResults
-
-* Call inline bot: messages.getInlineBotResults
-
-* Cancel password recovery email: account.cancelPasswordEmail
-
-* Change notification settings: account.updateNotifySettings
-
-* Change sticker position in photo: stickers.changeStickerPosition
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if about to edit a message or a media caption: messages.getMessageEditData
-
-* Check if an invitation link is valid: messages.checkChatInvite
-
-* Check if this username is available: account.checkUsername
-
-* Check if this username is free and can be assigned to a channel/supergroup: channels.checkUsername
-
-* Clear all drafts: messages.clearAllDrafts
-
-* Clear all recent stickers: messages.clearRecentStickers
-
-* Clear saved payments info: payments.clearSavedInfo
-
-* Confirm password recovery using email: account.confirmPasswordEmail
-
-* Confirm this phone number is associated to this account, obtain phone_code_hash from sendConfirmPhoneCode: account.confirmPhone
-
-* Contact signup notification setting value: account.getContactSignUpNotification
-
-* Convert chat to supergroup: messages.migrateChat
-
-* Create a chat (not supergroup): messages.createChat
-
-* Create channel/supergroup: channels.createChannel
-
-* Create stickerset: stickers.createStickerSet
-
-* Delete a certain session: account.resetAuthorization
-
-* Delete a certain telegram web login authorization: account.resetWebAuthorization
-
-* Delete a channel/supergroup: channels.deleteChannel
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete all messages of a user in a channel/supergroup: channels.deleteUserHistory
-
-* Delete all temporary authorization keys except the ones provided: auth.dropTempAuthKeys
-
-* Delete channel/supergroup messages: channels.deleteMessages
-
-* Delete chat history: messages.deleteHistory
-
-* Delete contacts by phones: contacts.deleteByPhones
-
-* Delete folder: folders.deleteFolder
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete secure telegram passport value: account.deleteSecureValue
-
-* Delete the history of a supergroup/channel: channels.deleteHistory
-
-* Delete this account: account.deleteAccount
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Download a file through telegram: upload.getWebFile
-
-* Edit a message: messages.editMessage
-
-* Edit a sent inline message: messages.editInlineBotMessage
-
-* Edit admin permissions of a user in a channel/supergroup: channels.editAdmin
-
-* Edit admin permissions: messages.editChatAdmin
-
-* Edit chat info: messages.editChatAbout
-
-* Edit creator of channel: channels.editCreator
-
-* Edit default rights of chat: messages.editChatDefaultBannedRights
-
-* Edit folder: folders.editPeerFolders
-
-* Edit location (geochats): channels.editLocation
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the photo of a supergroup/channel: channels.editPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Edit the title of a supergroup/channel: channels.editTitle
-
-* Edit user info: help.editUserInfo
-
-* Enable or disable hidden history for new channel/supergroup users: channels.togglePreHistoryHidden
-
-* Export chat invite : messages.exportChatInvite
-
-* Find a sticker set: messages.searchStickerSets
-
-* Finish account exporting session: account.finishTakeoutSession
-
-* Forward messages: messages.forwardMessages
-
-* Get CDN configuration: help.getCdnConfig
-
-* Get a stickerset: messages.getStickerSet
-
-* Get account TTL: account.getAccountTTL
-
-* Get admin log of a channel/supergroup: channels.getAdminLog
-
-* Get all archived stickers: messages.getArchivedStickers
-
-* Get all channels you left: channels.getLeftChannels
-
-* Get all chats (not supergroups or channels): messages.getAllChats
-
-* Get all contacts: contacts.getContacts
-
-* Get all logged-in authorizations: account.getAuthorizations
-
-* Get all message drafts: messages.getAllDrafts
-
-* Get all secure telegram passport values: account.getAllSecureValues
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get all supergroups/channels where you're admin: channels.getAdminedPublicChannels
-
-* Get and increase message views: messages.getMessagesViews
-
-* Get app config: help.getAppConfig
-
-* Get autodownload settings: account.getAutoDownloadSettings
-
-* Get available languages: langpack.getLanguages
-
-* Get blocked users: contacts.getBlocked
-
-* Get call configuration: phone.getCallConfig
-
-* Get channel/supergroup messages: channels.getMessages
-
-* Get channel/supergroup participants (you should use `$MadelineProto->get_pwr_chat($id)` instead): channels.getParticipants
-
-* Get chats in common with a user: messages.getCommonChats
-
-* Get contacts by IDs: contacts.getContactIDs
-
-* Get deep link info: help.getDeepLinkInfo
-
-* Get dialog info of peers: messages.getPeerDialogs
-
-* Get dialogs marked as unread manually: messages.getDialogUnreadMarks
-
-* Get document by SHA256 hash: messages.getDocumentByHash
-
-* Get emoji URL: messages.getEmojiURL
-
-* Get emoji keyword difference: messages.getEmojiKeywordsDifference
-
-* Get emoji keyword languages: messages.getEmojiKeywordsLanguages
-
-* Get emoji keywords: messages.getEmojiKeywords
-
-* Get favorite stickers: messages.getFavedStickers
-
-* Get featured stickers: messages.getFeaturedStickers
-
-* Get groups for discussion: channels.getGroupsForDiscussion
-
-* Get high scores of a game sent in an inline message: messages.getInlineGameHighScores
-
-* Get high scores of a game: messages.getGameHighScores
-
-* Get info about a certain channel/supergroup participant: channels.getParticipant
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about multiple channels/supergroups: channels.getChannels
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get information about the current proxy: help.getProxyData
-
-* Get invitation text: help.getInviteText
-
-* Get language pack strings: langpack.getStrings
-
-* Get language pack updates: langpack.getDifference
-
-* Get language pack: langpack.getLangPack
-
-* Get language: langpack.getLanguage
-
-* Get masks: messages.getMaskStickers
-
-* Get message ranges to fetch: messages.getSplitRanges
-
-* Get messages: messages.getMessages
-
-* Get most used chats: contacts.getTopPeers
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification exceptions: account.getNotifyExceptions
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get online users: messages.getOnlines
-
-* Get passport config: help.getPassportConfig
-
-* Get payment form: payments.getPaymentForm
-
-* Get payment receipt: payments.getPaymentReceipt
-
-* Get people nearby (geochats): contacts.getLocated
-
-* Get pinned dialogs: messages.getPinnedDialogs
-
-* Get poll results: messages.getPollResults
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get recent locations: messages.getRecentLocations
-
-* Get recent stickers: messages.getRecentStickers
-
-* Get recent t.me URLs: help.getRecentMeUrls
-
-* Get saved contacts: contacts.getSaved
-
-* Get saved gifs: messages.getSavedGifs
-
-* Get saved payments info: payments.getSavedInfo
-
-* Get search counter: messages.getSearchCounters
-
-* Get secure value for telegram passport: account.getSecureValue
-
-* Get server configuration: help.getConfig
-
-* Get stats URL: messages.getStatsURL
-
-* Get stickers attachable to images: messages.getAttachedStickers
-
-* Get stickers: messages.getStickers
-
-* Get support name: help.getSupportName
-
-* Get telegram web login authorizations: account.getWebAuthorizations
-
-* Get temporary password for buying products through bots: account.getTmpPassword
-
-* Get the callback answer of a bot (after clicking a button): messages.getBotCallbackAnswer
-
-* Get the changelog of this app: help.getAppChangelog
-
-* Get the current password: account.getPassword
-
-* Get the link of a message in a channel: channels.exportMessageLink
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Get the settings of apeer: messages.getPeerSettings
-
-* Get unread mentions: messages.getUnreadMentions
-
-* Get updated TOS: help.getTermsOfServiceUpdate
-
-* Get user info: help.getUserInfo
-
-* Get wallpaper info: account.getWallPaper
-
-* Get webpage preview: messages.getWebPage
-
-* Get webpage preview: messages.getWebPagePreview
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Global message search: messages.searchGlobal
-
-* Hide peer settings bar: messages.hidePeerSettingsBar
-
-* Import chat invite: messages.importChatInvite
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Install wallpaper: account.installWallPaper
-
-* Invalidate sent phone code: auth.cancelCode
-
-* Invoke method from takeout session: invokeWithTakeout
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invoke with messages range: invokeWithMessagesRange
-
-* Invoke with method without returning updates in the socket: invokeWithoutUpdates
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Join a channel/supergroup: channels.joinChannel
-
-* Kick or ban a user from a channel/supergroup: channels.editBanned
-
-* Leave a channel/supergroup: channels.leaveChannel
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark channel/supergroup history as read: channels.readHistory
-
-* Mark channel/supergroup messages as read: channels.readMessageContents
-
-* Mark dialog as unread : messages.markDialogUnread
-
-* Mark mentions as read: messages.readMentions
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Mark new featured stickers as read: messages.readFeaturedStickers
-
-* Notify server that you received a call (server will refuse all incoming calls until the current call is over): phone.receivedCall
-
-* Pin or unpin dialog: messages.toggleDialogPin
-
-* Register device for push notifications: account.registerDevice
-
-* Remove a sticker set: messages.uninstallStickerSet
-
-* Remove sticker from stickerset: stickers.removeStickerFromSet
-
-* Reorder pinned dialogs: messages.reorderPinnedDialogs
-
-* Reorder sticker sets: messages.reorderStickerSets
-
-* Report a message in a supergroup/channel for spam: channels.reportSpam
-
-* Report a message: messages.report
-
-* Report a peer for spam: messages.reportSpam
-
-* Report for spam a secret chat: messages.reportEncryptedSpam
-
-* Report for spam: account.reportPeer
-
-* Request URL authorization: messages.requestUrlAuth
-
-* Resend password recovery email: account.resendPasswordEmail
-
-* Resend the SMS verification code: auth.resendCode
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Reset all telegram web login authorizations: account.resetWebAuthorizations
-
-* Reset saved contacts: contacts.resetSaved
-
-* Reset top peer rating for a certain category/peer: contacts.resetTopPeerRating
-
-* Reset wallpapers: account.resetWallPapers
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Save a GIF: messages.saveGif
-
-* Save a message draft: messages.saveDraft
-
-* Save autodownload settings: account.saveAutoDownloadSettings
-
-* Save call debugging info: phone.saveCallDebug
-
-* Save telegram passport secure value: account.saveSecureValue
-
-* Save wallpaper: account.saveWallPaper
-
-* Search contacts: contacts.search
-
-* Search gifs: messages.searchGifs
-
-* Search peers or messages: messages.search
-
-* Send a custom request to the bot API: bots.sendCustomRequest
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send an album: messages.sendMultiMedia
-
-* Send an email to recover the 2FA password: auth.requestPasswordRecovery
-
-* Send confirmation phone code: account.sendConfirmPhoneCode
-
-* Send email verification code: account.sendVerifyEmailCode
-
-* Send inline bot result obtained with messages.getInlineBotResults to the chat: messages.sendInlineBotResult
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send phone verification code: account.sendVerifyPhoneCode
-
-* Send screenshot notification: messages.sendScreenshotNotification
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Send vote: messages.sendVote
-
-* Send webhook request via bot API: bots.answerWebhookJSONQuery
-
-* Set account TTL: account.setAccountTTL
-
-* Set contact sign up notification: account.setContactSignUpNotification
-
-* Set discussion group of channel: channels.setDiscussionGroup
-
-* Set phone call rating: phone.setCallRating
-
-* Set privacy settings: account.setPrivacy
-
-* Set secure value error for telegram passport: users.setSecureValueErrors
-
-* Set the game score of an inline message: messages.setInlineGameScore
-
-* Set the game score: messages.setGameScore
-
-* Set the supergroup/channel stickerpack: channels.setStickers
-
-* Set the update status of webhook: help.setBotUpdatesStatus
-
-* Start a bot: messages.startBot
-
-* Start account exporting session: account.initTakeoutSession
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Toggle channel signatures: channels.toggleSignatures
-
-* Toggle top peers: contacts.toggleTopPeers
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update pinned message: messages.updatePinnedMessage
-
-* Update profile info: account.updateProfile
-
-* Update the username of a supergroup/channel: channels.updateUsername
-
-* Update this user's username: account.updateUsername
-
-* Upload a file without sending it to anyone: messages.uploadMedia
-
-* Upload a secret chat file without sending it to anyone: messages.uploadEncryptedFile
-
-* Upload profile photo: photos.uploadProfilePhoto
-
-* Upload wallpaper: account.uploadWallPaper
-
-* Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
-
-* Validate requested payment info: payments.validateRequestedInfo
-
-* Verify email address: account.verifyEmail
-
-* Verify phone number: account.verifyPhone
-
diff --git a/old_docs/API_docs_v102/methods/account_changePhone.md b/old_docs/API_docs_v102/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/old_docs/API_docs_v102/methods/account_changePhone.md
+++ b/old_docs/API_docs_v102/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v102/methods/account_checkUsername.md b/old_docs/API_docs_v102/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v102/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v102/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v102/methods/account_confirmPhone.md b/old_docs/API_docs_v102/methods/account_confirmPhone.md
index b730c2dc..c114cd20 100644
--- a/old_docs/API_docs_v102/methods/account_confirmPhone.md
+++ b/old_docs/API_docs_v102/methods/account_confirmPhone.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = account.confirmPhone({phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_HASH_INVALID|Code hash invalid|
-|PHONE_CODE_EMPTY|phone_code is missing|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_HASH_INVALID|Code hash invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
diff --git a/old_docs/API_docs_v102/methods/account_getNotifySettings.md b/old_docs/API_docs_v102/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v102/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v102/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v102/methods/account_getPasswordSettings.md b/old_docs/API_docs_v102/methods/account_getPasswordSettings.md
index 8ebb78ee..e41c6b67 100644
--- a/old_docs/API_docs_v102/methods/account_getPasswordSettings.md
+++ b/old_docs/API_docs_v102/methods/account_getPasswordSettings.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+Get the current 2FA settings
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password|[InputCheckPasswordSRP](../types/InputCheckPasswordSRP.md) | You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [account\_PasswordSettings](../types/account_PasswordSettings.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$account_PasswordSettings = $MadelineProto->account->getPasswordSettings(['password' => InputCheckPasswordSRP, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+account_PasswordSettings = account.getPasswordSettings({password=InputCheckPasswordSRP, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v102/methods/account_getPrivacy.md b/old_docs/API_docs_v102/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/old_docs/API_docs_v102/methods/account_getPrivacy.md
+++ b/old_docs/API_docs_v102/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v102/methods/account_getTmpPassword.md b/old_docs/API_docs_v102/methods/account_getTmpPassword.md
index 3a29d97a..0ae4061f 100644
--- a/old_docs/API_docs_v102/methods/account_getTmpPassword.md
+++ b/old_docs/API_docs_v102/methods/account_getTmpPassword.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
account_TmpPassword = account.getTmpPassword({password=InputCheckPasswordSRP, period=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_HASH_INVALID|The provided password hash is invalid|
-|TMP_PASSWORD_DISABLED|The temporary password is disabled|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
+|400|TMP_PASSWORD_DISABLED|The temporary password is disabled|
diff --git a/old_docs/API_docs_v102/methods/account_registerDevice.md b/old_docs/API_docs_v102/methods/account_registerDevice.md
index 7c34f6c4..a8e8c2a2 100644
--- a/old_docs/API_docs_v102/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v102/methods/account_registerDevice.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({token_type=int, token='string', app_sandbox=Bool, secret='bytes', other_uids={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v102/methods/account_reportPeer.md b/old_docs/API_docs_v102/methods/account_reportPeer.md
index a203c900..87b080eb 100644
--- a/old_docs/API_docs_v102/methods/account_reportPeer.md
+++ b/old_docs/API_docs_v102/methods/account_reportPeer.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.reportPeer({peer=InputPeer, reason=ReportReason, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v102/methods/account_resetAuthorization.md b/old_docs/API_docs_v102/methods/account_resetAuthorization.md
index c950992c..e8e8ecc4 100644
--- a/old_docs/API_docs_v102/methods/account_resetAuthorization.md
+++ b/old_docs/API_docs_v102/methods/account_resetAuthorization.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.resetAuthorization({hash=long, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v102/methods/account_sendChangePhoneCode.md b/old_docs/API_docs_v102/methods/account_sendChangePhoneCode.md
index 3a0923f8..26375a94 100644
--- a/old_docs/API_docs_v102/methods/account_sendChangePhoneCode.md
+++ b/old_docs/API_docs_v102/methods/account_sendChangePhoneCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendChangePhoneCode({phone_number='string', settings=CodeSettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v102/methods/account_sendConfirmPhoneCode.md b/old_docs/API_docs_v102/methods/account_sendConfirmPhoneCode.md
index 02896f84..426b70b8 100644
--- a/old_docs/API_docs_v102/methods/account_sendConfirmPhoneCode.md
+++ b/old_docs/API_docs_v102/methods/account_sendConfirmPhoneCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendConfirmPhoneCode({hash='string', settings=CodeSettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v102/methods/account_setAccountTTL.md b/old_docs/API_docs_v102/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/old_docs/API_docs_v102/methods/account_setAccountTTL.md
+++ b/old_docs/API_docs_v102/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/old_docs/API_docs_v102/methods/account_setPrivacy.md b/old_docs/API_docs_v102/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/old_docs/API_docs_v102/methods/account_setPrivacy.md
+++ b/old_docs/API_docs_v102/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v102/methods/account_unregisterDevice.md b/old_docs/API_docs_v102/methods/account_unregisterDevice.md
index 13d11e88..e39f0811 100644
--- a/old_docs/API_docs_v102/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v102/methods/account_unregisterDevice.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', other_uids={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v102/methods/account_updateNotifySettings.md b/old_docs/API_docs_v102/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v102/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v102/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v102/methods/account_updatePasswordSettings.md b/old_docs/API_docs_v102/methods/account_updatePasswordSettings.md
index 80f27228..7afb81ea 100644
--- a/old_docs/API_docs_v102/methods/account_updatePasswordSettings.md
+++ b/old_docs/API_docs_v102/methods/account_updatePasswordSettings.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password|[InputCheckPasswordSRP](../types/InputCheckPasswordSRP.md) | You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|new\_settings|[account\_PasswordInputSettings](../types/account_PasswordInputSettings.md) | New 2FA settings | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->account->updatePasswordSettings(['password' => InputCheckPasswordSRP, 'new_settings' => account_PasswordInputSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = account.updatePasswordSettings({password=InputCheckPasswordSRP, new_settings=account_PasswordInputSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EMAIL_UNCONFIRMED|Email unconfirmed|
+|400|EMAIL_UNCONFIRMED_X|The provided email isn't confirmed, X is the length of the verification code that was just sent to the email.|
+|400|NEW_SALT_INVALID|The new salt is invalid|
+|400|NEW_SETTINGS_INVALID|The new settings are invalid|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v102/methods/account_updateProfile.md b/old_docs/API_docs_v102/methods/account_updateProfile.md
index af5b6a0f..0d74c5e5 100644
--- a/old_docs/API_docs_v102/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v102/methods/account_updateProfile.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v102/methods/account_updateStatus.md b/old_docs/API_docs_v102/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v102/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v102/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v102/methods/account_updateUsername.md b/old_docs/API_docs_v102/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v102/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v102/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v102/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v102/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v102/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v102/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v102/methods/auth_cancelCode.md b/old_docs/API_docs_v102/methods/auth_cancelCode.md
index fcbd7713..a69e0118 100644
--- a/old_docs/API_docs_v102/methods/auth_cancelCode.md
+++ b/old_docs/API_docs_v102/methods/auth_cancelCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = auth.cancelCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v102/methods/auth_checkPassword.md b/old_docs/API_docs_v102/methods/auth_checkPassword.md
index 8d76c483..ad2a88a2 100644
--- a/old_docs/API_docs_v102/methods/auth_checkPassword.md
+++ b/old_docs/API_docs_v102/methods/auth_checkPassword.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password|[InputCheckPasswordSRP](../types/InputCheckPasswordSRP.md) | You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->checkPassword(['password' => InputCheckPasswordSRP, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.checkPassword({password=InputCheckPasswordSRP, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v102/methods/auth_exportAuthorization.md b/old_docs/API_docs_v102/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v102/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v102/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v102/methods/auth_importAuthorization.md b/old_docs/API_docs_v102/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v102/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v102/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v102/methods/auth_importBotAuthorization.md b/old_docs/API_docs_v102/methods/auth_importBotAuthorization.md
index 1a98c1b9..98a2f8ca 100644
--- a/old_docs/API_docs_v102/methods/auth_importBotAuthorization.md
+++ b/old_docs/API_docs_v102/methods/auth_importBotAuthorization.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|api\_id|[int](../types/int.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_hash|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|bot\_auth\_token|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importBotAuthorization(['api_id' => int, 'api_hash' => 'string', 'bot_auth_token' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importBotAuthorization({api_id=int, api_hash='string', bot_auth_token='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ACCESS_TOKEN_EXPIRED|Access token expired|
+|400|ACCESS_TOKEN_INVALID|Access token invalid|
+|400|API_ID_INVALID|API ID invalid|
diff --git a/old_docs/API_docs_v102/methods/auth_logOut.md b/old_docs/API_docs_v102/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v102/methods/auth_logOut.md
+++ b/old_docs/API_docs_v102/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v102/methods/auth_recoverPassword.md b/old_docs/API_docs_v102/methods/auth_recoverPassword.md
index 83ff5aed..d4bad9c5 100644
--- a/old_docs/API_docs_v102/methods/auth_recoverPassword.md
+++ b/old_docs/API_docs_v102/methods/auth_recoverPassword.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
auth_Authorization = auth.recoverPassword({code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_EMPTY|The provided code is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_EMPTY|The provided code is empty|
diff --git a/old_docs/API_docs_v102/methods/auth_requestPasswordRecovery.md b/old_docs/API_docs_v102/methods/auth_requestPasswordRecovery.md
index 1864bbb0..b6ad57ba 100644
--- a/old_docs/API_docs_v102/methods/auth_requestPasswordRecovery.md
+++ b/old_docs/API_docs_v102/methods/auth_requestPasswordRecovery.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
auth_PasswordRecovery = auth.requestPasswordRecovery({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_EMPTY|The provided password is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_EMPTY|The provided password is empty|
diff --git a/old_docs/API_docs_v102/methods/auth_resendCode.md b/old_docs/API_docs_v102/methods/auth_resendCode.md
index ff7868ea..ec730d75 100644
--- a/old_docs/API_docs_v102/methods/auth_resendCode.md
+++ b/old_docs/API_docs_v102/methods/auth_resendCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = auth.resendCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v102/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v102/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v102/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v102/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v102/methods/auth_sendCode.md b/old_docs/API_docs_v102/methods/auth_sendCode.md
index 9afebb55..83dfd500 100644
--- a/old_docs/API_docs_v102/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v102/methods/auth_sendCode.md
@@ -7,8 +7,58 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+|settings|[CodeSettings](../types/CodeSettings.md) | You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['phone_number' => 'string', 'api_id' => int, 'api_hash' => 'string', 'settings' => CodeSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({phone_number='string', api_id=int, api_hash='string', settings=CodeSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v102/methods/auth_signIn.md b/old_docs/API_docs_v102/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v102/methods/auth_signIn.md
+++ b/old_docs/API_docs_v102/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v102/methods/auth_signUp.md b/old_docs/API_docs_v102/methods/auth_signUp.md
index 15960145..31154486 100644
--- a/old_docs/API_docs_v102/methods/auth_signUp.md
+++ b/old_docs/API_docs_v102/methods/auth_signUp.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', phone_code='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v102/methods/bots_answerWebhookJSONQuery.md b/old_docs/API_docs_v102/methods/bots_answerWebhookJSONQuery.md
index ae0fa6d9..f2233514 100644
--- a/old_docs/API_docs_v102/methods/bots_answerWebhookJSONQuery.md
+++ b/old_docs/API_docs_v102/methods/bots_answerWebhookJSONQuery.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = bots.answerWebhookJSONQuery({query_id=long, data=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v102/methods/bots_sendCustomRequest.md b/old_docs/API_docs_v102/methods/bots_sendCustomRequest.md
index c1fd8183..8a6a2df5 100644
--- a/old_docs/API_docs_v102/methods/bots_sendCustomRequest.md
+++ b/old_docs/API_docs_v102/methods/bots_sendCustomRequest.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
DataJSON = bots.sendCustomRequest({custom_method='string', params=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v102/methods/channels_checkUsername.md b/old_docs/API_docs_v102/methods/channels_checkUsername.md
index 483a2f6f..52365d34 100644
--- a/old_docs/API_docs_v102/methods/channels_checkUsername.md
+++ b/old_docs/API_docs_v102/methods/channels_checkUsername.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Bool = channels.checkUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v102/methods/channels_createChannel.md b/old_docs/API_docs_v102/methods/channels_createChannel.md
index 1b34ffcd..9f547934 100644
--- a/old_docs/API_docs_v102/methods/channels_createChannel.md
+++ b/old_docs/API_docs_v102/methods/channels_createChannel.md
@@ -47,12 +47,12 @@ Or, if you're into Lua:
Updates = channels.createChannel({broadcast=Bool, megagroup=Bool, title='string', about='string', geo_point=InputGeoPoint, address='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_TITLE_EMPTY|No chat title provided|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
+|406|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v102/methods/channels_deleteChannel.md b/old_docs/API_docs_v102/methods/channels_deleteChannel.md
index 53a9c23d..1b8d2d48 100644
--- a/old_docs/API_docs_v102/methods/channels_deleteChannel.md
+++ b/old_docs/API_docs_v102/methods/channels_deleteChannel.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Updates = channels.deleteChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v102/methods/channels_deleteMessages.md b/old_docs/API_docs_v102/methods/channels_deleteMessages.md
index f76a9ad1..463ebad0 100644
--- a/old_docs/API_docs_v102/methods/channels_deleteMessages.md
+++ b/old_docs/API_docs_v102/methods/channels_deleteMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_AffectedMessages = channels.deleteMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v102/methods/channels_deleteUserHistory.md b/old_docs/API_docs_v102/methods/channels_deleteUserHistory.md
index 0a4e7d82..33905a7e 100644
--- a/old_docs/API_docs_v102/methods/channels_deleteUserHistory.md
+++ b/old_docs/API_docs_v102/methods/channels_deleteUserHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedHistory = channels.deleteUserHistory({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v102/methods/channels_editAdmin.md b/old_docs/API_docs_v102/methods/channels_editAdmin.md
index 2ea10cf0..5f311714 100644
--- a/old_docs/API_docs_v102/methods/channels_editAdmin.md
+++ b/old_docs/API_docs_v102/methods/channels_editAdmin.md
@@ -44,19 +44,19 @@ Or, if you're into Lua:
Updates = channels.editAdmin({channel=InputChannel, user_id=InputUser, admin_rights=ChatAdminRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ADMINS_TOO_MUCH|There are too many admins|
-|BOT_CHANNELS_NA|Bots can't edit admin privileges|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
-|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ADMINS_TOO_MUCH|There are too many admins|
+|400|BOT_CHANNELS_NA|Bots can't edit admin privileges|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
+|403|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v102/methods/channels_editBanned.md b/old_docs/API_docs_v102/methods/channels_editBanned.md
index 8b08ed22..b9f1b58a 100644
--- a/old_docs/API_docs_v102/methods/channels_editBanned.md
+++ b/old_docs/API_docs_v102/methods/channels_editBanned.md
@@ -44,14 +44,14 @@ Or, if you're into Lua:
Updates = channels.editBanned({channel=InputChannel, user_id=InputUser, banned_rights=ChatBannedRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ADMIN_INVALID|You're not an admin|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ADMIN_INVALID|You're not an admin|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v102/methods/channels_editPhoto.md b/old_docs/API_docs_v102/methods/channels_editPhoto.md
index bec0ba48..caef32d5 100644
--- a/old_docs/API_docs_v102/methods/channels_editPhoto.md
+++ b/old_docs/API_docs_v102/methods/channels_editPhoto.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editPhoto({channel=InputChannel, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|PHOTO_INVALID|Photo invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|PHOTO_INVALID|Photo invalid|
diff --git a/old_docs/API_docs_v102/methods/channels_editTitle.md b/old_docs/API_docs_v102/methods/channels_editTitle.md
index b5efeb39..d7cb33da 100644
--- a/old_docs/API_docs_v102/methods/channels_editTitle.md
+++ b/old_docs/API_docs_v102/methods/channels_editTitle.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editTitle({channel=InputChannel, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v102/methods/channels_exportMessageLink.md b/old_docs/API_docs_v102/methods/channels_exportMessageLink.md
index 5dea54a7..fc2f248b 100644
--- a/old_docs/API_docs_v102/methods/channels_exportMessageLink.md
+++ b/old_docs/API_docs_v102/methods/channels_exportMessageLink.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
ExportedMessageLink = channels.exportMessageLink({channel=InputChannel, id=int, grouped=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v102/methods/channels_getAdminLog.md b/old_docs/API_docs_v102/methods/channels_getAdminLog.md
index 377c7320..adb87748 100644
--- a/old_docs/API_docs_v102/methods/channels_getAdminLog.md
+++ b/old_docs/API_docs_v102/methods/channels_getAdminLog.md
@@ -48,12 +48,12 @@ Or, if you're into Lua:
channels_AdminLogResults = channels.getAdminLog({channel=InputChannel, q='string', events_filter=ChannelAdminLogEventsFilter, admins={InputUser}, max_id=long, min_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v102/methods/channels_getChannels.md b/old_docs/API_docs_v102/methods/channels_getChannels.md
index 78d50641..95d7a188 100644
--- a/old_docs/API_docs_v102/methods/channels_getChannels.md
+++ b/old_docs/API_docs_v102/methods/channels_getChannels.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = channels.getChannels({id={InputChannel}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v102/methods/channels_getFullChannel.md b/old_docs/API_docs_v102/methods/channels_getFullChannel.md
index 45a8ec72..ebd53de4 100644
--- a/old_docs/API_docs_v102/methods/channels_getFullChannel.md
+++ b/old_docs/API_docs_v102/methods/channels_getFullChannel.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->channels->getFullChannel(['channel' => InputChannel, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = channels.getFullChannel({channel=InputChannel, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v102/methods/channels_getLeftChannels.md b/old_docs/API_docs_v102/methods/channels_getLeftChannels.md
index 2d256964..fac7ae07 100644
--- a/old_docs/API_docs_v102/methods/channels_getLeftChannels.md
+++ b/old_docs/API_docs_v102/methods/channels_getLeftChannels.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_Chats = channels.getLeftChannels({offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TAKEOUT_REQUIRED|A takeout session has to be initialized, first|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|TAKEOUT_REQUIRED|A takeout session has to be initialized, first|
diff --git a/old_docs/API_docs_v102/methods/channels_getMessages.md b/old_docs/API_docs_v102/methods/channels_getMessages.md
index 90cf5a47..f1ae0a4d 100644
--- a/old_docs/API_docs_v102/methods/channels_getMessages.md
+++ b/old_docs/API_docs_v102/methods/channels_getMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_Messages = channels.getMessages({channel=InputChannel, id={InputMessage}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
diff --git a/old_docs/API_docs_v102/methods/channels_getParticipant.md b/old_docs/API_docs_v102/methods/channels_getParticipant.md
index 6633114f..808156fd 100644
--- a/old_docs/API_docs_v102/methods/channels_getParticipant.md
+++ b/old_docs/API_docs_v102/methods/channels_getParticipant.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
channels_ChannelParticipant = channels.getParticipant({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v102/methods/channels_getParticipants.md b/old_docs/API_docs_v102/methods/channels_getParticipants.md
index 5ff242e6..fb7a39df 100644
--- a/old_docs/API_docs_v102/methods/channels_getParticipants.md
+++ b/old_docs/API_docs_v102/methods/channels_getParticipants.md
@@ -46,14 +46,14 @@ Or, if you're into Lua:
channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, filter=ChannelParticipantsFilter, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v102/methods/channels_inviteToChannel.md b/old_docs/API_docs_v102/methods/channels_inviteToChannel.md
index f7093f13..d8c5e88a 100644
--- a/old_docs/API_docs_v102/methods/channels_inviteToChannel.md
+++ b/old_docs/API_docs_v102/methods/channels_inviteToChannel.md
@@ -43,25 +43,25 @@ Or, if you're into Lua:
Updates = channels.inviteToChannel({channel=InputChannel, users={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
-|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_BLOCKED|User blocked|
-|USER_BOT|Bots can only be admins in channels.|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_KICKED|This user was kicked from this supergroup/channel|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
+|400|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_BLOCKED|User blocked|
+|400|USER_BOT|Bots can only be admins in channels.|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_KICKED|This user was kicked from this supergroup/channel|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v102/methods/channels_joinChannel.md b/old_docs/API_docs_v102/methods/channels_joinChannel.md
index b056031a..a4a7c177 100644
--- a/old_docs/API_docs_v102/methods/channels_joinChannel.md
+++ b/old_docs/API_docs_v102/methods/channels_joinChannel.md
@@ -42,15 +42,15 @@ Or, if you're into Lua:
Updates = channels.joinChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
diff --git a/old_docs/API_docs_v102/methods/channels_leaveChannel.md b/old_docs/API_docs_v102/methods/channels_leaveChannel.md
index fdea13ba..6538d443 100644
--- a/old_docs/API_docs_v102/methods/channels_leaveChannel.md
+++ b/old_docs/API_docs_v102/methods/channels_leaveChannel.md
@@ -42,14 +42,14 @@ Or, if you're into Lua:
Updates = channels.leaveChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
-|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
diff --git a/old_docs/API_docs_v102/methods/channels_readHistory.md b/old_docs/API_docs_v102/methods/channels_readHistory.md
index 93dc075f..3532dae0 100644
--- a/old_docs/API_docs_v102/methods/channels_readHistory.md
+++ b/old_docs/API_docs_v102/methods/channels_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readHistory({channel=InputChannel, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v102/methods/channels_readMessageContents.md b/old_docs/API_docs_v102/methods/channels_readMessageContents.md
index 80ddf2b0..8cd8c620 100644
--- a/old_docs/API_docs_v102/methods/channels_readMessageContents.md
+++ b/old_docs/API_docs_v102/methods/channels_readMessageContents.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readMessageContents({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v102/methods/channels_reportSpam.md b/old_docs/API_docs_v102/methods/channels_reportSpam.md
index db80676a..7e273cc5 100644
--- a/old_docs/API_docs_v102/methods/channels_reportSpam.md
+++ b/old_docs/API_docs_v102/methods/channels_reportSpam.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
Bool = channels.reportSpam({channel=InputChannel, user_id=InputUser, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
diff --git a/old_docs/API_docs_v102/methods/channels_setStickers.md b/old_docs/API_docs_v102/methods/channels_setStickers.md
index 10cd68bf..c9b95527 100644
--- a/old_docs/API_docs_v102/methods/channels_setStickers.md
+++ b/old_docs/API_docs_v102/methods/channels_setStickers.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.setStickers({channel=InputChannel, stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PARTICIPANTS_TOO_FEW|Not enough participants|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PARTICIPANTS_TOO_FEW|Not enough participants|
diff --git a/old_docs/API_docs_v102/methods/channels_toggleSignatures.md b/old_docs/API_docs_v102/methods/channels_toggleSignatures.md
index cdfc0fda..f8624946 100644
--- a/old_docs/API_docs_v102/methods/channels_toggleSignatures.md
+++ b/old_docs/API_docs_v102/methods/channels_toggleSignatures.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = channels.toggleSignatures({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v102/methods/channels_updateUsername.md b/old_docs/API_docs_v102/methods/channels_updateUsername.md
index 677712f9..48d250e6 100644
--- a/old_docs/API_docs_v102/methods/channels_updateUsername.md
+++ b/old_docs/API_docs_v102/methods/channels_updateUsername.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Bool = channels.updateUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_OCCUPIED|The provided username is already occupied|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
diff --git a/old_docs/API_docs_v102/methods/contacts_addContact.md b/old_docs/API_docs_v102/methods/contacts_addContact.md
index 0d5aae8c..80f540bb 100644
--- a/old_docs/API_docs_v102/methods/contacts_addContact.md
+++ b/old_docs/API_docs_v102/methods/contacts_addContact.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
Updates = contacts.addContact({add_phone_privacy_exception=Bool, id=InputUser, first_name='string', last_name='string', phone='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v102/methods/contacts_block.md b/old_docs/API_docs_v102/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v102/methods/contacts_block.md
+++ b/old_docs/API_docs_v102/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v102/methods/contacts_deleteContacts.md b/old_docs/API_docs_v102/methods/contacts_deleteContacts.md
index b4f47c1b..007fd8d4 100644
--- a/old_docs/API_docs_v102/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v102/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Updates = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v102/methods/contacts_getStatuses.md b/old_docs/API_docs_v102/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v102/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v102/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v102/methods/contacts_getTopPeers.md b/old_docs/API_docs_v102/methods/contacts_getTopPeers.md
index 586fb99e..8c307877 100644
--- a/old_docs/API_docs_v102/methods/contacts_getTopPeers.md
+++ b/old_docs/API_docs_v102/methods/contacts_getTopPeers.md
@@ -52,10 +52,10 @@ Or, if you're into Lua:
contacts_TopPeers = contacts.getTopPeers({correspondents=Bool, bots_pm=Bool, bots_inline=Bool, phone_calls=Bool, forward_users=Bool, forward_chats=Bool, groups=Bool, channels=Bool, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TYPES_EMPTY|No top peer type was provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TYPES_EMPTY|No top peer type was provided|
diff --git a/old_docs/API_docs_v102/methods/contacts_resetTopPeerRating.md b/old_docs/API_docs_v102/methods/contacts_resetTopPeerRating.md
index 43cf1685..787be177 100644
--- a/old_docs/API_docs_v102/methods/contacts_resetTopPeerRating.md
+++ b/old_docs/API_docs_v102/methods/contacts_resetTopPeerRating.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = contacts.resetTopPeerRating({category=TopPeerCategory, peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v102/methods/contacts_resolveUsername.md b/old_docs/API_docs_v102/methods/contacts_resolveUsername.md
index fab56bb1..68f709db 100644
--- a/old_docs/API_docs_v102/methods/contacts_resolveUsername.md
+++ b/old_docs/API_docs_v102/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [contacts\_ResolvedPeer](../types/contacts_ResolvedPeer.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$contacts_ResolvedPeer = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+contacts_ResolvedPeer = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v102/methods/contacts_search.md b/old_docs/API_docs_v102/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v102/methods/contacts_search.md
+++ b/old_docs/API_docs_v102/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v102/methods/contacts_unblock.md b/old_docs/API_docs_v102/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v102/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v102/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v102/methods/folders_editPeerFolders.md b/old_docs/API_docs_v102/methods/folders_editPeerFolders.md
index f4884643..28c8db40 100644
--- a/old_docs/API_docs_v102/methods/folders_editPeerFolders.md
+++ b/old_docs/API_docs_v102/methods/folders_editPeerFolders.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Updates = folders.editPeerFolders({folder_peers={InputFolderPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FOLDER_ID_INVALID|Invalid folder ID|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FOLDER_ID_INVALID|Invalid folder ID|
diff --git a/old_docs/API_docs_v102/methods/help_getCdnConfig.md b/old_docs/API_docs_v102/methods/help_getCdnConfig.md
index 9e047a1d..ba526365 100644
--- a/old_docs/API_docs_v102/methods/help_getCdnConfig.md
+++ b/old_docs/API_docs_v102/methods/help_getCdnConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
CdnConfig = help.getCdnConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v102/methods/help_getConfig.md b/old_docs/API_docs_v102/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v102/methods/help_getConfig.md
+++ b/old_docs/API_docs_v102/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v102/methods/initConnection.md b/old_docs/API_docs_v102/methods/initConnection.md
index 69d29401..5c4bfab9 100644
--- a/old_docs/API_docs_v102/methods/initConnection.md
+++ b/old_docs/API_docs_v102/methods/initConnection.md
@@ -50,11 +50,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', system_lang_code='string', lang_pack='string', lang_code='string', proxy=InputClientProxy, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v102/methods/invokeWithLayer.md b/old_docs/API_docs_v102/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/old_docs/API_docs_v102/methods/invokeWithLayer.md
+++ b/old_docs/API_docs_v102/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v102/methods/langpack_getDifference.md b/old_docs/API_docs_v102/methods/langpack_getDifference.md
index 712d88f4..6995c17d 100644
--- a/old_docs/API_docs_v102/methods/langpack_getDifference.md
+++ b/old_docs/API_docs_v102/methods/langpack_getDifference.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getDifference({lang_pack='string', lang_code='string', from_version=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v102/methods/langpack_getLangPack.md b/old_docs/API_docs_v102/methods/langpack_getLangPack.md
index 55d30529..d2280670 100644
--- a/old_docs/API_docs_v102/methods/langpack_getLangPack.md
+++ b/old_docs/API_docs_v102/methods/langpack_getLangPack.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getLangPack({lang_pack='string', lang_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v102/methods/langpack_getLanguages.md b/old_docs/API_docs_v102/methods/langpack_getLanguages.md
index d4b9734e..686a50f5 100644
--- a/old_docs/API_docs_v102/methods/langpack_getLanguages.md
+++ b/old_docs/API_docs_v102/methods/langpack_getLanguages.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Vector_of_LangPackLanguage = langpack.getLanguages({lang_pack='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v102/methods/langpack_getStrings.md b/old_docs/API_docs_v102/methods/langpack_getStrings.md
index 65f65dfc..f0463eed 100644
--- a/old_docs/API_docs_v102/methods/langpack_getStrings.md
+++ b/old_docs/API_docs_v102/methods/langpack_getStrings.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Vector_of_LangPackString = langpack.getStrings({lang_pack='string', lang_code='string', keys={'string'}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_acceptEncryption.md b/old_docs/API_docs_v102/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v102/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v102/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v102/methods/messages_addChatUser.md b/old_docs/API_docs_v102/methods/messages_addChatUser.md
index bc0d6253..b5e164b2 100644
--- a/old_docs/API_docs_v102/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v102/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
Updates = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v102/methods/messages_checkChatInvite.md b/old_docs/API_docs_v102/methods/messages_checkChatInvite.md
index de28b09b..0d13d55e 100644
--- a/old_docs/API_docs_v102/methods/messages_checkChatInvite.md
+++ b/old_docs/API_docs_v102/methods/messages_checkChatInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ChatInvite = messages.checkChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_createChat.md b/old_docs/API_docs_v102/methods/messages_createChat.md
index 8f6e9672..b2623f1d 100644
--- a/old_docs/API_docs_v102/methods/messages_createChat.md
+++ b/old_docs/API_docs_v102/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v102/methods/messages_deleteChatUser.md b/old_docs/API_docs_v102/methods/messages_deleteChatUser.md
index 63529571..11b9b220 100644
--- a/old_docs/API_docs_v102/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v102/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v102/methods/messages_deleteHistory.md b/old_docs/API_docs_v102/methods/messages_deleteHistory.md
index faddfda5..5a38e404 100644
--- a/old_docs/API_docs_v102/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v102/methods/messages_deleteHistory.md
@@ -45,10 +45,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({just_clear=Bool, revoke=Bool, peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_deleteMessages.md b/old_docs/API_docs_v102/methods/messages_deleteMessages.md
index 4c65080a..41517dd0 100644
--- a/old_docs/API_docs_v102/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v102/methods/messages_deleteMessages.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.deleteMessages({revoke=Bool, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v102/methods/messages_discardEncryption.md b/old_docs/API_docs_v102/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v102/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v102/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_editChatAbout.md b/old_docs/API_docs_v102/methods/messages_editChatAbout.md
index 6c562c12..05fff24f 100644
--- a/old_docs/API_docs_v102/methods/messages_editChatAbout.md
+++ b/old_docs/API_docs_v102/methods/messages_editChatAbout.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.editChatAbout({peer=InputPeer, about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_editChatAdmin.md b/old_docs/API_docs_v102/methods/messages_editChatAdmin.md
index 2b4dc94c..6f6c1376 100644
--- a/old_docs/API_docs_v102/methods/messages_editChatAdmin.md
+++ b/old_docs/API_docs_v102/methods/messages_editChatAdmin.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.editChatAdmin({chat_id=InputPeer, user_id=InputUser, is_admin=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_editChatDefaultBannedRights.md b/old_docs/API_docs_v102/methods/messages_editChatDefaultBannedRights.md
index 30e7836e..a8e075eb 100644
--- a/old_docs/API_docs_v102/methods/messages_editChatDefaultBannedRights.md
+++ b/old_docs/API_docs_v102/methods/messages_editChatDefaultBannedRights.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatDefaultBannedRights({peer=InputPeer, banned_rights=ChatBannedRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BANNED_RIGHTS_INVALID|You provided some invalid flags in the banned rights|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BANNED_RIGHTS_INVALID|You provided some invalid flags in the banned rights|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_editChatPhoto.md b/old_docs/API_docs_v102/methods/messages_editChatPhoto.md
index 2a82c232..a21a03b9 100644
--- a/old_docs/API_docs_v102/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v102/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Updates = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_editChatTitle.md b/old_docs/API_docs_v102/methods/messages_editChatTitle.md
index 2c338ad6..72f78741 100644
--- a/old_docs/API_docs_v102/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v102/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v102/methods/messages_editInlineBotMessage.md b/old_docs/API_docs_v102/methods/messages_editInlineBotMessage.md
index 67313f15..5f7a31c9 100644
--- a/old_docs/API_docs_v102/methods/messages_editInlineBotMessage.md
+++ b/old_docs/API_docs_v102/methods/messages_editInlineBotMessage.md
@@ -96,11 +96,11 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
diff --git a/old_docs/API_docs_v102/methods/messages_editMessage.md b/old_docs/API_docs_v102/methods/messages_editMessage.md
index 720f4285..d394d1aa 100644
--- a/old_docs/API_docs_v102/methods/messages_editMessage.md
+++ b/old_docs/API_docs_v102/methods/messages_editMessage.md
@@ -97,20 +97,20 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v102/methods/messages_exportChatInvite.md b/old_docs/API_docs_v102/methods/messages_exportChatInvite.md
index 9028d4cd..c78d7fb9 100644
--- a/old_docs/API_docs_v102/methods/messages_exportChatInvite.md
+++ b/old_docs/API_docs_v102/methods/messages_exportChatInvite.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
ExportedChatInvite = messages.exportChatInvite({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_faveSticker.md b/old_docs/API_docs_v102/methods/messages_faveSticker.md
index a8b1ab56..9f9f423d 100644
--- a/old_docs/API_docs_v102/methods/messages_faveSticker.md
+++ b/old_docs/API_docs_v102/methods/messages_faveSticker.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.faveSticker({id=InputDocument, unfave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_forwardMessages.md b/old_docs/API_docs_v102/methods/messages_forwardMessages.md
index d2453d05..743fa7a6 100644
--- a/old_docs/API_docs_v102/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v102/methods/messages_forwardMessages.md
@@ -48,29 +48,29 @@ Or, if you're into Lua:
Updates = messages.forwardMessages({silent=Bool, background=Bool, with_my_score=Bool, grouped=Bool, from_peer=InputPeer, id={int}, to_peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v102/methods/messages_getBotCallbackAnswer.md b/old_docs/API_docs_v102/methods/messages_getBotCallbackAnswer.md
index f97fa5b0..3f8cc23b 100644
--- a/old_docs/API_docs_v102/methods/messages_getBotCallbackAnswer.md
+++ b/old_docs/API_docs_v102/methods/messages_getBotCallbackAnswer.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
messages_BotCallbackAnswer = messages.getBotCallbackAnswer({game=Bool, peer=InputPeer, msg_id=int, data='bytes', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v102/methods/messages_getChats.md b/old_docs/API_docs_v102/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/old_docs/API_docs_v102/methods/messages_getChats.md
+++ b/old_docs/API_docs_v102/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_getCommonChats.md b/old_docs/API_docs_v102/methods/messages_getCommonChats.md
index 9470a0ee..cff23c3f 100644
--- a/old_docs/API_docs_v102/methods/messages_getCommonChats.md
+++ b/old_docs/API_docs_v102/methods/messages_getCommonChats.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_Chats = messages.getCommonChats({user_id=InputUser, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_getDhConfig.md b/old_docs/API_docs_v102/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v102/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v102/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_getDialogs.md b/old_docs/API_docs_v102/methods/messages_getDialogs.md
index 7e6b77a6..d6bcd23d 100644
--- a/old_docs/API_docs_v102/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v102/methods/messages_getDialogs.md
@@ -48,13 +48,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({exclude_pinned=Bool, folder_id=int, offset_date=int, offset_id=int, offset_peer=InputPeer, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v102/methods/messages_getDocumentByHash.md b/old_docs/API_docs_v102/methods/messages_getDocumentByHash.md
index 73a235d5..06469c52 100644
--- a/old_docs/API_docs_v102/methods/messages_getDocumentByHash.md
+++ b/old_docs/API_docs_v102/methods/messages_getDocumentByHash.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Document = messages.getDocumentByHash({sha256='bytes', size=int, mime_type='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_getFullChat.md b/old_docs/API_docs_v102/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v102/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v102/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_getGameHighScores.md b/old_docs/API_docs_v102/methods/messages_getGameHighScores.md
index 249e1d09..5c484bbb 100644
--- a/old_docs/API_docs_v102/methods/messages_getGameHighScores.md
+++ b/old_docs/API_docs_v102/methods/messages_getGameHighScores.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
messages_HighScores = messages.getGameHighScores({peer=InputPeer, id=int, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v102/methods/messages_getHistory.md b/old_docs/API_docs_v102/methods/messages_getHistory.md
index d623a61e..a0389d7b 100644
--- a/old_docs/API_docs_v102/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v102/methods/messages_getHistory.md
@@ -49,16 +49,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset_id=int, offset_date=int, add_offset=int, limit=int, max_id=int, min_id=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v102/methods/messages_getInlineBotResults.md b/old_docs/API_docs_v102/methods/messages_getInlineBotResults.md
index 1efcb412..17d678b7 100644
--- a/old_docs/API_docs_v102/methods/messages_getInlineBotResults.md
+++ b/old_docs/API_docs_v102/methods/messages_getInlineBotResults.md
@@ -46,13 +46,13 @@ Or, if you're into Lua:
messages_BotResults = messages.getInlineBotResults({bot=InputUser, peer=InputPeer, geo_point=InputGeoPoint, query='string', offset='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
-|BOT_INVALID|This is not a valid bot|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
+|400|BOT_INVALID|This is not a valid bot|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v102/methods/messages_getInlineGameHighScores.md b/old_docs/API_docs_v102/methods/messages_getInlineGameHighScores.md
index e68c6db8..ac33b6b8 100644
--- a/old_docs/API_docs_v102/methods/messages_getInlineGameHighScores.md
+++ b/old_docs/API_docs_v102/methods/messages_getInlineGameHighScores.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_HighScores = messages.getInlineGameHighScores({id=InputBotInlineMessageID, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v102/methods/messages_getMessageEditData.md b/old_docs/API_docs_v102/methods/messages_getMessageEditData.md
index 7f1b7164..b907d78c 100644
--- a/old_docs/API_docs_v102/methods/messages_getMessageEditData.md
+++ b/old_docs/API_docs_v102/methods/messages_getMessageEditData.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_MessageEditData = messages.getMessageEditData({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v102/methods/messages_getMessagesViews.md b/old_docs/API_docs_v102/methods/messages_getMessagesViews.md
index 3d490315..143e568c 100644
--- a/old_docs/API_docs_v102/methods/messages_getMessagesViews.md
+++ b/old_docs/API_docs_v102/methods/messages_getMessagesViews.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
Vector_of_int = messages.getMessagesViews({peer=InputPeer, id={int}, increment=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_getPeerDialogs.md b/old_docs/API_docs_v102/methods/messages_getPeerDialogs.md
index 02eb9b43..17e0d11e 100644
--- a/old_docs/API_docs_v102/methods/messages_getPeerDialogs.md
+++ b/old_docs/API_docs_v102/methods/messages_getPeerDialogs.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPeerDialogs({peers={InputDialogPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_getPeerSettings.md b/old_docs/API_docs_v102/methods/messages_getPeerSettings.md
index 26dafb9b..69032ff5 100644
--- a/old_docs/API_docs_v102/methods/messages_getPeerSettings.md
+++ b/old_docs/API_docs_v102/methods/messages_getPeerSettings.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
PeerSettings = messages.getPeerSettings({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_getPinnedDialogs.md b/old_docs/API_docs_v102/methods/messages_getPinnedDialogs.md
index 8d23e4fa..7fbfecd0 100644
--- a/old_docs/API_docs_v102/methods/messages_getPinnedDialogs.md
+++ b/old_docs/API_docs_v102/methods/messages_getPinnedDialogs.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPinnedDialogs({folder_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FOLDER_ID_INVALID|Invalid folder ID|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FOLDER_ID_INVALID|Invalid folder ID|
diff --git a/old_docs/API_docs_v102/methods/messages_getStatsURL.md b/old_docs/API_docs_v102/methods/messages_getStatsURL.md
index 4f7c08d9..f0c44447 100644
--- a/old_docs/API_docs_v102/methods/messages_getStatsURL.md
+++ b/old_docs/API_docs_v102/methods/messages_getStatsURL.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
StatsURL = messages.getStatsURL({dark=Bool, peer=InputPeer, params='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_getStickerSet.md b/old_docs/API_docs_v102/methods/messages_getStickerSet.md
index 57bce84d..487316cc 100644
--- a/old_docs/API_docs_v102/methods/messages_getStickerSet.md
+++ b/old_docs/API_docs_v102/methods/messages_getStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_StickerSet = messages.getStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_getUnreadMentions.md b/old_docs/API_docs_v102/methods/messages_getUnreadMentions.md
index 1fa1f269..923229eb 100644
--- a/old_docs/API_docs_v102/methods/messages_getUnreadMentions.md
+++ b/old_docs/API_docs_v102/methods/messages_getUnreadMentions.md
@@ -47,10 +47,10 @@ Or, if you're into Lua:
messages_Messages = messages.getUnreadMentions({peer=InputPeer, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_getWebPage.md b/old_docs/API_docs_v102/methods/messages_getWebPage.md
index ce51ff41..63ef5e93 100644
--- a/old_docs/API_docs_v102/methods/messages_getWebPage.md
+++ b/old_docs/API_docs_v102/methods/messages_getWebPage.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
WebPage = messages.getWebPage({url='string', hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|WC_CONVERT_URL_INVALID|WC convert URL invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|WC_CONVERT_URL_INVALID|WC convert URL invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_importChatInvite.md b/old_docs/API_docs_v102/methods/messages_importChatInvite.md
index 12120867..101b4b19 100644
--- a/old_docs/API_docs_v102/methods/messages_importChatInvite.md
+++ b/old_docs/API_docs_v102/methods/messages_importChatInvite.md
@@ -42,16 +42,16 @@ Or, if you're into Lua:
Updates = messages.importChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v102/methods/messages_installStickerSet.md b/old_docs/API_docs_v102/methods/messages_installStickerSet.md
index 21a57a85..67f2aca0 100644
--- a/old_docs/API_docs_v102/methods/messages_installStickerSet.md
+++ b/old_docs/API_docs_v102/methods/messages_installStickerSet.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_StickerSetInstallResult = messages.installStickerSet({stickerset=InputStickerSet, archived=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_migrateChat.md b/old_docs/API_docs_v102/methods/messages_migrateChat.md
index a72f4c11..ee4010eb 100644
--- a/old_docs/API_docs_v102/methods/messages_migrateChat.md
+++ b/old_docs/API_docs_v102/methods/messages_migrateChat.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
Updates = messages.migrateChat({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v102/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v102/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v102/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v102/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v102/methods/messages_readHistory.md b/old_docs/API_docs_v102/methods/messages_readHistory.md
index 2ad5cd09..a7f0eca7 100644
--- a/old_docs/API_docs_v102/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v102/methods/messages_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.readHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v102/methods/messages_receivedQueue.md b/old_docs/API_docs_v102/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v102/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v102/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v102/methods/messages_reorderPinnedDialogs.md b/old_docs/API_docs_v102/methods/messages_reorderPinnedDialogs.md
index 70482817..d83341a6 100644
--- a/old_docs/API_docs_v102/methods/messages_reorderPinnedDialogs.md
+++ b/old_docs/API_docs_v102/methods/messages_reorderPinnedDialogs.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.reorderPinnedDialogs({force=Bool, folder_id=int, order={InputDialogPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_reportEncryptedSpam.md b/old_docs/API_docs_v102/methods/messages_reportEncryptedSpam.md
index 9b1e868b..aeac27ef 100644
--- a/old_docs/API_docs_v102/methods/messages_reportEncryptedSpam.md
+++ b/old_docs/API_docs_v102/methods/messages_reportEncryptedSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportEncryptedSpam({peer=InputEncryptedChat, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_reportSpam.md b/old_docs/API_docs_v102/methods/messages_reportSpam.md
index e92fba13..dc256e55 100644
--- a/old_docs/API_docs_v102/methods/messages_reportSpam.md
+++ b/old_docs/API_docs_v102/methods/messages_reportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_requestEncryption.md b/old_docs/API_docs_v102/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v102/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v102/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_saveDraft.md b/old_docs/API_docs_v102/methods/messages_saveDraft.md
index 791ce234..ea6d407e 100644
--- a/old_docs/API_docs_v102/methods/messages_saveDraft.md
+++ b/old_docs/API_docs_v102/methods/messages_saveDraft.md
@@ -89,10 +89,10 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_saveGif.md b/old_docs/API_docs_v102/methods/messages_saveGif.md
index f504ff9e..010e17ec 100644
--- a/old_docs/API_docs_v102/methods/messages_saveGif.md
+++ b/old_docs/API_docs_v102/methods/messages_saveGif.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.saveGif({id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|GIF_ID_INVALID|The provided GIF ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|GIF_ID_INVALID|The provided GIF ID is invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_saveRecentSticker.md b/old_docs/API_docs_v102/methods/messages_saveRecentSticker.md
index 98c74efd..072b6fe9 100644
--- a/old_docs/API_docs_v102/methods/messages_saveRecentSticker.md
+++ b/old_docs/API_docs_v102/methods/messages_saveRecentSticker.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.saveRecentSticker({attached=Bool, id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_search.md b/old_docs/API_docs_v102/methods/messages_search.md
index 83cb34c6..07529b40 100644
--- a/old_docs/API_docs_v102/methods/messages_search.md
+++ b/old_docs/API_docs_v102/methods/messages_search.md
@@ -53,16 +53,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({peer=InputPeer, q='string', from_id=InputUser, filter=MessagesFilter, min_date=int, max_date=int, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_searchGifs.md b/old_docs/API_docs_v102/methods/messages_searchGifs.md
index 7be4173b..1602d35e 100644
--- a/old_docs/API_docs_v102/methods/messages_searchGifs.md
+++ b/old_docs/API_docs_v102/methods/messages_searchGifs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_FoundGifs = messages.searchGifs({q='string', offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v102/methods/messages_searchGlobal.md b/old_docs/API_docs_v102/methods/messages_searchGlobal.md
index 8b87dcf3..a07e21e8 100644
--- a/old_docs/API_docs_v102/methods/messages_searchGlobal.md
+++ b/old_docs/API_docs_v102/methods/messages_searchGlobal.md
@@ -47,10 +47,10 @@ Or, if you're into Lua:
messages_Messages = messages.searchGlobal({folder_id=int, q='string', offset_rate=int, offset_peer=InputPeer, offset_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v102/methods/messages_sendEncrypted.md b/old_docs/API_docs_v102/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v102/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v102/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v102/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v102/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v102/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v102/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v102/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v102/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v102/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v102/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v102/methods/messages_sendInlineBotResult.md b/old_docs/API_docs_v102/methods/messages_sendInlineBotResult.md
index 96d7571a..642ba34f 100644
--- a/old_docs/API_docs_v102/methods/messages_sendInlineBotResult.md
+++ b/old_docs/API_docs_v102/methods/messages_sendInlineBotResult.md
@@ -49,15 +49,15 @@ Or, if you're into Lua:
Updates = messages.sendInlineBotResult({silent=Bool, background=Bool, clear_draft=Bool, hide_via=Bool, peer=InputPeer, reply_to_msg_id=int, query_id=long, id='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INLINE_RESULT_EXPIRED|The inline query expired|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|QUERY_ID_EMPTY|The query ID is empty|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INLINE_RESULT_EXPIRED|The inline query expired|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|QUERY_ID_EMPTY|The query ID is empty|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v102/methods/messages_sendMedia.md b/old_docs/API_docs_v102/methods/messages_sendMedia.md
index 44c604c6..a2244583 100644
--- a/old_docs/API_docs_v102/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v102/methods/messages_sendMedia.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v102/methods/messages_sendMessage.md b/old_docs/API_docs_v102/methods/messages_sendMessage.md
index 5641ebc3..e0ab305d 100644
--- a/old_docs/API_docs_v102/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v102/methods/messages_sendMessage.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v102/methods/messages_sendMultiMedia.md b/old_docs/API_docs_v102/methods/messages_sendMultiMedia.md
index 9ebdcb88..5684a6d2 100644
--- a/old_docs/API_docs_v102/methods/messages_sendMultiMedia.md
+++ b/old_docs/API_docs_v102/methods/messages_sendMultiMedia.md
@@ -47,11 +47,11 @@ Or, if you're into Lua:
Updates = messages.sendMultiMedia({silent=Bool, background=Bool, clear_draft=Bool, peer=InputPeer, reply_to_msg_id=int, multi_media={InputSingleMedia}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_sendScreenshotNotification.md b/old_docs/API_docs_v102/methods/messages_sendScreenshotNotification.md
index 3f5bb36d..4e4e40f5 100644
--- a/old_docs/API_docs_v102/methods/messages_sendScreenshotNotification.md
+++ b/old_docs/API_docs_v102/methods/messages_sendScreenshotNotification.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = messages.sendScreenshotNotification({peer=InputPeer, reply_to_msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_setBotCallbackAnswer.md b/old_docs/API_docs_v102/methods/messages_setBotCallbackAnswer.md
index ed058b4f..630ca61c 100644
--- a/old_docs/API_docs_v102/methods/messages_setBotCallbackAnswer.md
+++ b/old_docs/API_docs_v102/methods/messages_setBotCallbackAnswer.md
@@ -52,11 +52,11 @@ Bool = messages.setBotCallbackAnswer({alert=Bool, query_id=long, message='string
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|URL_INVALID|Invalid URL provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|URL_INVALID|Invalid URL provided|
diff --git a/old_docs/API_docs_v102/methods/messages_setBotPrecheckoutResults.md b/old_docs/API_docs_v102/methods/messages_setBotPrecheckoutResults.md
index cc615123..d6e0e61b 100644
--- a/old_docs/API_docs_v102/methods/messages_setBotPrecheckoutResults.md
+++ b/old_docs/API_docs_v102/methods/messages_setBotPrecheckoutResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotPrecheckoutResults({success=Bool, query_id=long, error='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ERROR_TEXT_EMPTY|The provided error message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ERROR_TEXT_EMPTY|The provided error message is empty|
diff --git a/old_docs/API_docs_v102/methods/messages_setBotShippingResults.md b/old_docs/API_docs_v102/methods/messages_setBotShippingResults.md
index f3a86f4f..adc4f64f 100644
--- a/old_docs/API_docs_v102/methods/messages_setBotShippingResults.md
+++ b/old_docs/API_docs_v102/methods/messages_setBotShippingResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotShippingResults({query_id=long, error='string', shipping_options={ShippingOption}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v102/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v102/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v102/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_setGameScore.md b/old_docs/API_docs_v102/methods/messages_setGameScore.md
index 548ee889..429b04c6 100644
--- a/old_docs/API_docs_v102/methods/messages_setGameScore.md
+++ b/old_docs/API_docs_v102/methods/messages_setGameScore.md
@@ -47,12 +47,12 @@ Or, if you're into Lua:
Updates = messages.setGameScore({edit_message=Bool, force=Bool, peer=InputPeer, id=int, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v102/methods/messages_setInlineBotResults.md b/old_docs/API_docs_v102/methods/messages_setInlineBotResults.md
index ab388e39..df4c30d4 100644
--- a/old_docs/API_docs_v102/methods/messages_setInlineBotResults.md
+++ b/old_docs/API_docs_v102/methods/messages_setInlineBotResults.md
@@ -48,23 +48,23 @@ Or, if you're into Lua:
Bool = messages.setInlineBotResults({gallery=Bool, private=Bool, query_id=long, results={InputBotInlineResult}, cache_time=int, next_offset='string', switch_pm=InlineBotSwitchPM, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ARTICLE_TITLE_EMPTY|The title of the article is empty|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|PHOTO_INVALID|Photo invalid|
-|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
-|QUERY_ID_INVALID|The query ID is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|RESULT_TYPE_INVALID|Result type invalid|
-|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
-|START_PARAM_INVALID|Start parameter invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ARTICLE_TITLE_EMPTY|The title of the article is empty|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|PHOTO_INVALID|Photo invalid|
+|400|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|RESULT_TYPE_INVALID|Result type invalid|
+|400|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
+|400|START_PARAM_INVALID|Start parameter invalid|
+|403|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v102/methods/messages_setInlineGameScore.md b/old_docs/API_docs_v102/methods/messages_setInlineGameScore.md
index 5eeb1540..62b163d5 100644
--- a/old_docs/API_docs_v102/methods/messages_setInlineGameScore.md
+++ b/old_docs/API_docs_v102/methods/messages_setInlineGameScore.md
@@ -46,11 +46,11 @@ Or, if you're into Lua:
Bool = messages.setInlineGameScore({edit_message=Bool, force=Bool, id=InputBotInlineMessageID, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v102/methods/messages_setTyping.md b/old_docs/API_docs_v102/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v102/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v102/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v102/methods/messages_startBot.md b/old_docs/API_docs_v102/methods/messages_startBot.md
index aa2b2d00..4bf12aa6 100644
--- a/old_docs/API_docs_v102/methods/messages_startBot.md
+++ b/old_docs/API_docs_v102/methods/messages_startBot.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = messages.startBot({bot=InputUser, peer=InputPeer, start_param='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INVALID|This is not a valid bot|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|START_PARAM_EMPTY|The start parameter is empty|
-|START_PARAM_INVALID|Start parameter invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INVALID|This is not a valid bot|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|START_PARAM_EMPTY|The start parameter is empty|
+|400|START_PARAM_INVALID|Start parameter invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_toggleDialogPin.md b/old_docs/API_docs_v102/methods/messages_toggleDialogPin.md
index 22c6d15d..ff46ef21 100644
--- a/old_docs/API_docs_v102/methods/messages_toggleDialogPin.md
+++ b/old_docs/API_docs_v102/methods/messages_toggleDialogPin.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.toggleDialogPin({pinned=Bool, peer=InputDialogPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_uninstallStickerSet.md b/old_docs/API_docs_v102/methods/messages_uninstallStickerSet.md
index 59abc510..6b7a2006 100644
--- a/old_docs/API_docs_v102/methods/messages_uninstallStickerSet.md
+++ b/old_docs/API_docs_v102/methods/messages_uninstallStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.uninstallStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v102/methods/messages_uploadMedia.md b/old_docs/API_docs_v102/methods/messages_uploadMedia.md
index afc806fe..09fc074c 100644
--- a/old_docs/API_docs_v102/methods/messages_uploadMedia.md
+++ b/old_docs/API_docs_v102/methods/messages_uploadMedia.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
MessageMedia = messages.uploadMedia({peer=InputPeer, media=InputMedia, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v102/methods/payments_getPaymentForm.md b/old_docs/API_docs_v102/methods/payments_getPaymentForm.md
index e8e04f37..4c28121f 100644
--- a/old_docs/API_docs_v102/methods/payments_getPaymentForm.md
+++ b/old_docs/API_docs_v102/methods/payments_getPaymentForm.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentForm = payments.getPaymentForm({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v102/methods/payments_getPaymentReceipt.md b/old_docs/API_docs_v102/methods/payments_getPaymentReceipt.md
index acb1c209..0e2f76a8 100644
--- a/old_docs/API_docs_v102/methods/payments_getPaymentReceipt.md
+++ b/old_docs/API_docs_v102/methods/payments_getPaymentReceipt.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentReceipt = payments.getPaymentReceipt({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v102/methods/payments_sendPaymentForm.md b/old_docs/API_docs_v102/methods/payments_sendPaymentForm.md
index b8fa905d..1910ede8 100644
--- a/old_docs/API_docs_v102/methods/payments_sendPaymentForm.md
+++ b/old_docs/API_docs_v102/methods/payments_sendPaymentForm.md
@@ -45,10 +45,10 @@ Or, if you're into Lua:
payments_PaymentResult = payments.sendPaymentForm({msg_id=int, requested_info_id='string', shipping_option_id='string', credentials=InputPaymentCredentials, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v102/methods/payments_validateRequestedInfo.md b/old_docs/API_docs_v102/methods/payments_validateRequestedInfo.md
index 3b9da7e6..f18e1660 100644
--- a/old_docs/API_docs_v102/methods/payments_validateRequestedInfo.md
+++ b/old_docs/API_docs_v102/methods/payments_validateRequestedInfo.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
payments_ValidatedRequestedInfo = payments.validateRequestedInfo({save=Bool, msg_id=int, info=PaymentRequestedInfo, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v102/methods/phone_acceptCall.md b/old_docs/API_docs_v102/methods/phone_acceptCall.md
index b75ac65b..f5c58f01 100644
--- a/old_docs/API_docs_v102/methods/phone_acceptCall.md
+++ b/old_docs/API_docs_v102/methods/phone_acceptCall.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->acceptCall(['peer' => InputPhoneCall, 'g_b' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.acceptCall({peer=InputPhoneCall, g_b='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
diff --git a/old_docs/API_docs_v102/methods/phone_confirmCall.md b/old_docs/API_docs_v102/methods/phone_confirmCall.md
index 1a75563d..468307cc 100644
--- a/old_docs/API_docs_v102/methods/phone_confirmCall.md
+++ b/old_docs/API_docs_v102/methods/phone_confirmCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->confirmCall(['peer' => InputPhoneCall, 'g_a' => 'bytes', 'key_fingerprint' => long, 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.confirmCall({peer=InputPhoneCall, g_a='bytes', key_fingerprint=long, protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v102/methods/phone_discardCall.md b/old_docs/API_docs_v102/methods/phone_discardCall.md
index e50456eb..b4fec97a 100644
--- a/old_docs/API_docs_v102/methods/phone_discardCall.md
+++ b/old_docs/API_docs_v102/methods/phone_discardCall.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|video|[Bool](../types/Bool.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Optional|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|duration|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|reason|[PhoneCallDiscardReason](../types/PhoneCallDiscardReason.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|connection\_id|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [Updates](../types/Updates.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Updates = $MadelineProto->phone->discardCall(['video' => Bool, 'peer' => InputPhoneCall, 'duration' => int, 'reason' => PhoneCallDiscardReason, 'connection_id' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Updates = phone.discardCall({video=Bool, peer=InputPhoneCall, duration=int, reason=PhoneCallDiscardReason, connection_id=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v102/methods/phone_receivedCall.md b/old_docs/API_docs_v102/methods/phone_receivedCall.md
index c43bc8ac..6091424b 100644
--- a/old_docs/API_docs_v102/methods/phone_receivedCall.md
+++ b/old_docs/API_docs_v102/methods/phone_receivedCall.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Bool = phone.receivedCall({peer=InputPhoneCall, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_ALREADY_DECLINED|The call was already declined|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v102/methods/phone_requestCall.md b/old_docs/API_docs_v102/methods/phone_requestCall.md
index 9b8df564..e3894214 100644
--- a/old_docs/API_docs_v102/methods/phone_requestCall.md
+++ b/old_docs/API_docs_v102/methods/phone_requestCall.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|video|[Bool](../types/Bool.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Optional|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Optional|
+|g\_a\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->requestCall(['video' => Bool, 'user_id' => InputUser, 'g_a_hash' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.requestCall({video=Bool, user_id=InputUser, g_a_hash='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
+|400|PARTICIPANT_VERSION_OUTDATED|The other participant does not use an up to date telegram client with support for calls|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|403|USER_IS_BLOCKED|You were blocked by this user|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v102/methods/phone_saveCallDebug.md b/old_docs/API_docs_v102/methods/phone_saveCallDebug.md
index 8acbc353..1e793c05 100644
--- a/old_docs/API_docs_v102/methods/phone_saveCallDebug.md
+++ b/old_docs/API_docs_v102/methods/phone_saveCallDebug.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = phone.saveCallDebug({peer=InputPhoneCall, debug=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
-|DATA_JSON_INVALID|The provided JSON data is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|DATA_JSON_INVALID|The provided JSON data is invalid|
diff --git a/old_docs/API_docs_v102/methods/phone_setCallRating.md b/old_docs/API_docs_v102/methods/phone_setCallRating.md
index 5977c943..df40c478 100644
--- a/old_docs/API_docs_v102/methods/phone_setCallRating.md
+++ b/old_docs/API_docs_v102/methods/phone_setCallRating.md
@@ -45,10 +45,10 @@ Or, if you're into Lua:
Updates = phone.setCallRating({user_initiative=Bool, peer=InputPhoneCall, rating=int, comment='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v102/methods/photos_getUserPhotos.md b/old_docs/API_docs_v102/methods/photos_getUserPhotos.md
index 57f5772b..a01f3180 100644
--- a/old_docs/API_docs_v102/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v102/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v102/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v102/methods/photos_updateProfilePhoto.md
index cca2fe30..f7c91ec6 100644
--- a/old_docs/API_docs_v102/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v102/methods/photos_updateProfilePhoto.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v102/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v102/methods/photos_uploadProfilePhoto.md
index 457bade8..badde2de 100644
--- a/old_docs/API_docs_v102/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v102/methods/photos_uploadProfilePhoto.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v102/methods/stickers_addStickerToSet.md b/old_docs/API_docs_v102/methods/stickers_addStickerToSet.md
index 78e8437c..b1fa2aad 100644
--- a/old_docs/API_docs_v102/methods/stickers_addStickerToSet.md
+++ b/old_docs/API_docs_v102/methods/stickers_addStickerToSet.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.addStickerToSet({stickerset=InputStickerSet, sticker=InputStickerSetItem, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v102/methods/stickers_changeStickerPosition.md b/old_docs/API_docs_v102/methods/stickers_changeStickerPosition.md
index cddc1cbb..98dde67e 100644
--- a/old_docs/API_docs_v102/methods/stickers_changeStickerPosition.md
+++ b/old_docs/API_docs_v102/methods/stickers_changeStickerPosition.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.changeStickerPosition({sticker=InputDocument, position=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/old_docs/API_docs_v102/methods/stickers_createStickerSet.md b/old_docs/API_docs_v102/methods/stickers_createStickerSet.md
index 41e4ad11..741e0ad6 100644
--- a/old_docs/API_docs_v102/methods/stickers_createStickerSet.md
+++ b/old_docs/API_docs_v102/methods/stickers_createStickerSet.md
@@ -46,18 +46,18 @@ Or, if you're into Lua:
messages_StickerSet = stickers.createStickerSet({masks=Bool, user_id=InputUser, title='string', short_name='string', stickers={InputStickerSetItem}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|PACK_SHORT_NAME_INVALID|Short pack name invalid|
-|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|STICKER_EMOJI_INVALID|Sticker emoji invalid|
-|STICKER_FILE_INVALID|Sticker file invalid|
-|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
-|STICKERS_EMPTY|No sticker provided|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|PACK_SHORT_NAME_INVALID|Short pack name invalid|
+|400|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|STICKER_EMOJI_INVALID|Sticker emoji invalid|
+|400|STICKER_FILE_INVALID|Sticker file invalid|
+|400|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
+|400|STICKERS_EMPTY|No sticker provided|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v102/methods/stickers_removeStickerFromSet.md b/old_docs/API_docs_v102/methods/stickers_removeStickerFromSet.md
index ea4621f2..d1fc4339 100644
--- a/old_docs/API_docs_v102/methods/stickers_removeStickerFromSet.md
+++ b/old_docs/API_docs_v102/methods/stickers_removeStickerFromSet.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.removeStickerFromSet({sticker=InputDocument, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/old_docs/API_docs_v102/methods/updates_getChannelDifference.md b/old_docs/API_docs_v102/methods/updates_getChannelDifference.md
index 6fa79529..9735c14a 100644
--- a/old_docs/API_docs_v102/methods/updates_getChannelDifference.md
+++ b/old_docs/API_docs_v102/methods/updates_getChannelDifference.md
@@ -7,8 +7,56 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|force|[Bool](../types/Bool.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|filter|[ChannelMessagesFilter](../types/ChannelMessagesFilter.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_ChannelDifference](../types/updates_ChannelDifference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_ChannelDifference = $MadelineProto->updates->getChannelDifference(['force' => Bool, 'channel' => InputChannel, 'filter' => ChannelMessagesFilter, 'pts' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_ChannelDifference = updates.getChannelDifference({force=Bool, channel=InputChannel, filter=ChannelMessagesFilter, pts=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|400|RANGES_INVALID|Invalid range provided|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v102/methods/updates_getDifference.md b/old_docs/API_docs_v102/methods/updates_getDifference.md
index 33e7d7f2..bcfac4e2 100644
--- a/old_docs/API_docs_v102/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v102/methods/updates_getDifference.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|pts\_total\_limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'pts_total_limit' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, pts_total_limit=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v102/methods/updates_getState.md b/old_docs/API_docs_v102/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v102/methods/updates_getState.md
+++ b/old_docs/API_docs_v102/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v102/methods/upload_getCdnFile.md b/old_docs/API_docs_v102/methods/upload_getCdnFile.md
index 5e5b3f43..be9ad311 100644
--- a/old_docs/API_docs_v102/methods/upload_getCdnFile.md
+++ b/old_docs/API_docs_v102/methods/upload_getCdnFile.md
@@ -7,8 +7,40 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_CdnFile](../types/upload_CdnFile.md)
+
+### Can bots use this method: **NO**
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_CdnFile = $MadelineProto->upload->getCdnFile(['file_token' => 'bytes', 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_CdnFile = upload.getCdnFile({file_token='bytes', offset=int, limit=int, })
+```
+
diff --git a/old_docs/API_docs_v102/methods/upload_getCdnFileHashes.md b/old_docs/API_docs_v102/methods/upload_getCdnFileHashes.md
index ea6a8e75..d957578e 100644
--- a/old_docs/API_docs_v102/methods/upload_getCdnFileHashes.md
+++ b/old_docs/API_docs_v102/methods/upload_getCdnFileHashes.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->getCdnFileHashes(['file_token' => 'bytes', 'offset' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.getCdnFileHashes({file_token='bytes', offset=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/old_docs/API_docs_v102/methods/upload_getFile.md b/old_docs/API_docs_v102/methods/upload_getFile.md
index c72e6090..d8b433d6 100644
--- a/old_docs/API_docs_v102/methods/upload_getFile.md
+++ b/old_docs/API_docs_v102/methods/upload_getFile.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v102/methods/upload_getFileHashes.md b/old_docs/API_docs_v102/methods/upload_getFileHashes.md
index debeb60d..e03dd5c5 100644
--- a/old_docs/API_docs_v102/methods/upload_getFileHashes.md
+++ b/old_docs/API_docs_v102/methods/upload_getFileHashes.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+Get file hashes
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | The file | Yes|
+|offset|[int](../types/int.md) | Offset | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->getFileHashes(['location' => InputFileLocation, 'offset' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.getFileHashes({location=InputFileLocation, offset=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LOCATION_INVALID|The provided location is invalid|
diff --git a/old_docs/API_docs_v102/methods/upload_getWebFile.md b/old_docs/API_docs_v102/methods/upload_getWebFile.md
index 21179a66..7b63f96c 100644
--- a/old_docs/API_docs_v102/methods/upload_getWebFile.md
+++ b/old_docs/API_docs_v102/methods/upload_getWebFile.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
upload_WebFile = upload.getWebFile({location=InputWebFileLocation, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LOCATION_INVALID|The provided location is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LOCATION_INVALID|The provided location is invalid|
diff --git a/old_docs/API_docs_v102/methods/upload_reuploadCdnFile.md b/old_docs/API_docs_v102/methods/upload_reuploadCdnFile.md
index cc20d5e3..f531557c 100644
--- a/old_docs/API_docs_v102/methods/upload_reuploadCdnFile.md
+++ b/old_docs/API_docs_v102/methods/upload_reuploadCdnFile.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|request\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->reuploadCdnFile(['file_token' => 'bytes', 'request_token' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.reuploadCdnFile({file_token='bytes', request_token='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/old_docs/API_docs_v102/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v102/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v102/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v102/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v102/methods/upload_saveFilePart.md b/old_docs/API_docs_v102/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v102/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v102/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v102/methods/users_getFullUser.md b/old_docs/API_docs_v102/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v102/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v102/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v102/methods/users_getUsers.md b/old_docs/API_docs_v102/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v102/methods/users_getUsers.md
+++ b/old_docs/API_docs_v102/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v102/methods/users_setSecureValueErrors.md b/old_docs/API_docs_v102/methods/users_setSecureValueErrors.md
index 40e398ab..661137fb 100644
--- a/old_docs/API_docs_v102/methods/users_setSecureValueErrors.md
+++ b/old_docs/API_docs_v102/methods/users_setSecureValueErrors.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = users.setSecureValueErrors({id=InputUser, errors={SecureValueError}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v103/methods/README.md b/old_docs/API_docs_v103/methods/README.md
index 5ca33d8d..a161eab6 100644
--- a/old_docs/API_docs_v103/methods/README.md
+++ b/old_docs/API_docs_v103/methods/README.md
@@ -30,547 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Accept URL authorization: messages.acceptUrlAuth
-
-* Accept contact: contacts.acceptContact
-
-* Accept telegram passport authorization: account.acceptAuthorization
-
-* Accept telegram's TOS: help.acceptTermsOfService
-
-* Add a sticker set: messages.installStickerSet
-
-* Add a sticker to favorites: messages.faveSticker
-
-* Add a sticker to recent stickers: messages.saveRecentSticker
-
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add contact: contacts.addContact
-
-* Add phone number as contact: contacts.importContacts
-
-* Add sticker to stickerset: stickers.addStickerToSet
-
-* Add users to channel/supergroup: channels.inviteToChannel
-
-* Block a user: contacts.block
-
-* Bots only: get telegram passport authorization form: account.getAuthorizationForm
-
-* Bots only: send payment form: payments.sendPaymentForm
-
-* Bots only: set precheckout results: messages.setBotPrecheckoutResults
-
-* Bots only: set shipping results: messages.setBotShippingResults
-
-* Bots only: set the callback answer (after a button was clicked): messages.setBotCallbackAnswer
-
-* Bots only: set the results of an inline query: messages.setInlineBotResults
-
-* Call inline bot: messages.getInlineBotResults
-
-* Cancel password recovery email: account.cancelPasswordEmail
-
-* Change notification settings: account.updateNotifySettings
-
-* Change sticker position in photo: stickers.changeStickerPosition
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if about to edit a message or a media caption: messages.getMessageEditData
-
-* Check if an invitation link is valid: messages.checkChatInvite
-
-* Check if this username is available: account.checkUsername
-
-* Check if this username is free and can be assigned to a channel/supergroup: channels.checkUsername
-
-* Clear all drafts: messages.clearAllDrafts
-
-* Clear all recent stickers: messages.clearRecentStickers
-
-* Clear saved payments info: payments.clearSavedInfo
-
-* Confirm password recovery using email: account.confirmPasswordEmail
-
-* Confirm this phone number is associated to this account, obtain phone_code_hash from sendConfirmPhoneCode: account.confirmPhone
-
-* Contact signup notification setting value: account.getContactSignUpNotification
-
-* Convert chat to supergroup: messages.migrateChat
-
-* Create a chat (not supergroup): messages.createChat
-
-* Create channel/supergroup: channels.createChannel
-
-* Create stickerset: stickers.createStickerSet
-
-* Delete a certain session: account.resetAuthorization
-
-* Delete a certain telegram web login authorization: account.resetWebAuthorization
-
-* Delete a channel/supergroup: channels.deleteChannel
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete all messages of a user in a channel/supergroup: channels.deleteUserHistory
-
-* Delete all temporary authorization keys except the ones provided: auth.dropTempAuthKeys
-
-* Delete channel/supergroup messages: channels.deleteMessages
-
-* Delete chat history: messages.deleteHistory
-
-* Delete contacts by phones: contacts.deleteByPhones
-
-* Delete folder: folders.deleteFolder
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete secure telegram passport value: account.deleteSecureValue
-
-* Delete the history of a supergroup/channel: channels.deleteHistory
-
-* Delete this account: account.deleteAccount
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Download a file through telegram: upload.getWebFile
-
-* Edit a message: messages.editMessage
-
-* Edit a sent inline message: messages.editInlineBotMessage
-
-* Edit admin permissions of a user in a channel/supergroup: channels.editAdmin
-
-* Edit admin permissions: messages.editChatAdmin
-
-* Edit chat info: messages.editChatAbout
-
-* Edit creator of channel: channels.editCreator
-
-* Edit default rights of chat: messages.editChatDefaultBannedRights
-
-* Edit folder: folders.editPeerFolders
-
-* Edit location (geochats): channels.editLocation
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the photo of a supergroup/channel: channels.editPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Edit the title of a supergroup/channel: channels.editTitle
-
-* Edit user info: help.editUserInfo
-
-* Enable or disable hidden history for new channel/supergroup users: channels.togglePreHistoryHidden
-
-* Export chat invite : messages.exportChatInvite
-
-* Find a sticker set: messages.searchStickerSets
-
-* Finish account exporting session: account.finishTakeoutSession
-
-* Forward messages: messages.forwardMessages
-
-* Get CDN configuration: help.getCdnConfig
-
-* Get a stickerset: messages.getStickerSet
-
-* Get account TTL: account.getAccountTTL
-
-* Get admin log of a channel/supergroup: channels.getAdminLog
-
-* Get all archived stickers: messages.getArchivedStickers
-
-* Get all channels you left: channels.getLeftChannels
-
-* Get all chats (not supergroups or channels): messages.getAllChats
-
-* Get all contacts: contacts.getContacts
-
-* Get all logged-in authorizations: account.getAuthorizations
-
-* Get all message drafts: messages.getAllDrafts
-
-* Get all secure telegram passport values: account.getAllSecureValues
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get all supergroups/channels where you're admin: channels.getAdminedPublicChannels
-
-* Get and increase message views: messages.getMessagesViews
-
-* Get app config: help.getAppConfig
-
-* Get autodownload settings: account.getAutoDownloadSettings
-
-* Get available languages: langpack.getLanguages
-
-* Get blocked users: contacts.getBlocked
-
-* Get call configuration: phone.getCallConfig
-
-* Get channel/supergroup messages: channels.getMessages
-
-* Get channel/supergroup participants (you should use `$MadelineProto->get_pwr_chat($id)` instead): channels.getParticipants
-
-* Get chats in common with a user: messages.getCommonChats
-
-* Get contacts by IDs: contacts.getContactIDs
-
-* Get deep link info: help.getDeepLinkInfo
-
-* Get dialog info of peers: messages.getPeerDialogs
-
-* Get dialogs marked as unread manually: messages.getDialogUnreadMarks
-
-* Get document by SHA256 hash: messages.getDocumentByHash
-
-* Get emoji URL: messages.getEmojiURL
-
-* Get emoji keyword difference: messages.getEmojiKeywordsDifference
-
-* Get emoji keyword languages: messages.getEmojiKeywordsLanguages
-
-* Get emoji keywords: messages.getEmojiKeywords
-
-* Get favorite stickers: messages.getFavedStickers
-
-* Get featured stickers: messages.getFeaturedStickers
-
-* Get groups for discussion: channels.getGroupsForDiscussion
-
-* Get high scores of a game sent in an inline message: messages.getInlineGameHighScores
-
-* Get high scores of a game: messages.getGameHighScores
-
-* Get info about a certain channel/supergroup participant: channels.getParticipant
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about multiple channels/supergroups: channels.getChannels
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get information about the current proxy: help.getProxyData
-
-* Get invitation text: help.getInviteText
-
-* Get language pack strings: langpack.getStrings
-
-* Get language pack updates: langpack.getDifference
-
-* Get language pack: langpack.getLangPack
-
-* Get language: langpack.getLanguage
-
-* Get masks: messages.getMaskStickers
-
-* Get message ranges to fetch: messages.getSplitRanges
-
-* Get messages: messages.getMessages
-
-* Get most used chats: contacts.getTopPeers
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification exceptions: account.getNotifyExceptions
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get online users: messages.getOnlines
-
-* Get passport config: help.getPassportConfig
-
-* Get payment form: payments.getPaymentForm
-
-* Get payment receipt: payments.getPaymentReceipt
-
-* Get people nearby (geochats): contacts.getLocated
-
-* Get pinned dialogs: messages.getPinnedDialogs
-
-* Get poll results: messages.getPollResults
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get recent locations: messages.getRecentLocations
-
-* Get recent stickers: messages.getRecentStickers
-
-* Get recent t.me URLs: help.getRecentMeUrls
-
-* Get saved contacts: contacts.getSaved
-
-* Get saved gifs: messages.getSavedGifs
-
-* Get saved payments info: payments.getSavedInfo
-
-* Get search counter: messages.getSearchCounters
-
-* Get secure value for telegram passport: account.getSecureValue
-
-* Get server configuration: help.getConfig
-
-* Get stats URL: messages.getStatsURL
-
-* Get stickers attachable to images: messages.getAttachedStickers
-
-* Get stickers: messages.getStickers
-
-* Get support name: help.getSupportName
-
-* Get telegram web login authorizations: account.getWebAuthorizations
-
-* Get temporary password for buying products through bots: account.getTmpPassword
-
-* Get the callback answer of a bot (after clicking a button): messages.getBotCallbackAnswer
-
-* Get the changelog of this app: help.getAppChangelog
-
-* Get the current password: account.getPassword
-
-* Get the link of a message in a channel: channels.exportMessageLink
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Get the settings of apeer: messages.getPeerSettings
-
-* Get unread mentions: messages.getUnreadMentions
-
-* Get updated TOS: help.getTermsOfServiceUpdate
-
-* Get user info: help.getUserInfo
-
-* Get wallpaper info: account.getWallPaper
-
-* Get webpage preview: messages.getWebPage
-
-* Get webpage preview: messages.getWebPagePreview
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Global message search: messages.searchGlobal
-
-* Hide peer settings bar: messages.hidePeerSettingsBar
-
-* Import chat invite: messages.importChatInvite
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Install wallpaper: account.installWallPaper
-
-* Invalidate sent phone code: auth.cancelCode
-
-* Invoke method from takeout session: invokeWithTakeout
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invoke with messages range: invokeWithMessagesRange
-
-* Invoke with method without returning updates in the socket: invokeWithoutUpdates
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Join a channel/supergroup: channels.joinChannel
-
-* Kick or ban a user from a channel/supergroup: channels.editBanned
-
-* Leave a channel/supergroup: channels.leaveChannel
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark channel/supergroup history as read: channels.readHistory
-
-* Mark channel/supergroup messages as read: channels.readMessageContents
-
-* Mark dialog as unread : messages.markDialogUnread
-
-* Mark mentions as read: messages.readMentions
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Mark new featured stickers as read: messages.readFeaturedStickers
-
-* Notify server that you received a call (server will refuse all incoming calls until the current call is over): phone.receivedCall
-
-* Pin or unpin dialog: messages.toggleDialogPin
-
-* Register device for push notifications: account.registerDevice
-
-* Remove a sticker set: messages.uninstallStickerSet
-
-* Remove sticker from stickerset: stickers.removeStickerFromSet
-
-* Reorder pinned dialogs: messages.reorderPinnedDialogs
-
-* Reorder sticker sets: messages.reorderStickerSets
-
-* Report a message in a supergroup/channel for spam: channels.reportSpam
-
-* Report a message: messages.report
-
-* Report a peer for spam: messages.reportSpam
-
-* Report for spam a secret chat: messages.reportEncryptedSpam
-
-* Report for spam: account.reportPeer
-
-* Request URL authorization: messages.requestUrlAuth
-
-* Resend password recovery email: account.resendPasswordEmail
-
-* Resend the SMS verification code: auth.resendCode
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Reset all telegram web login authorizations: account.resetWebAuthorizations
-
-* Reset saved contacts: contacts.resetSaved
-
-* Reset top peer rating for a certain category/peer: contacts.resetTopPeerRating
-
-* Reset wallpapers: account.resetWallPapers
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Save a GIF: messages.saveGif
-
-* Save a message draft: messages.saveDraft
-
-* Save autodownload settings: account.saveAutoDownloadSettings
-
-* Save call debugging info: phone.saveCallDebug
-
-* Save telegram passport secure value: account.saveSecureValue
-
-* Save wallpaper: account.saveWallPaper
-
-* Search contacts: contacts.search
-
-* Search gifs: messages.searchGifs
-
-* Search peers or messages: messages.search
-
-* Send a custom request to the bot API: bots.sendCustomRequest
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send an album: messages.sendMultiMedia
-
-* Send an email to recover the 2FA password: auth.requestPasswordRecovery
-
-* Send confirmation phone code: account.sendConfirmPhoneCode
-
-* Send email verification code: account.sendVerifyEmailCode
-
-* Send inline bot result obtained with messages.getInlineBotResults to the chat: messages.sendInlineBotResult
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send phone verification code: account.sendVerifyPhoneCode
-
-* Send screenshot notification: messages.sendScreenshotNotification
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Send vote: messages.sendVote
-
-* Send webhook request via bot API: bots.answerWebhookJSONQuery
-
-* Set account TTL: account.setAccountTTL
-
-* Set contact sign up notification: account.setContactSignUpNotification
-
-* Set discussion group of channel: channels.setDiscussionGroup
-
-* Set phone call rating: phone.setCallRating
-
-* Set privacy settings: account.setPrivacy
-
-* Set secure value error for telegram passport: users.setSecureValueErrors
-
-* Set the game score of an inline message: messages.setInlineGameScore
-
-* Set the game score: messages.setGameScore
-
-* Set the supergroup/channel stickerpack: channels.setStickers
-
-* Set the update status of webhook: help.setBotUpdatesStatus
-
-* Start a bot: messages.startBot
-
-* Start account exporting session: account.initTakeoutSession
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Toggle channel signatures: channels.toggleSignatures
-
-* Toggle top peers: contacts.toggleTopPeers
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update pinned message: messages.updatePinnedMessage
-
-* Update profile info: account.updateProfile
-
-* Update the username of a supergroup/channel: channels.updateUsername
-
-* Update this user's username: account.updateUsername
-
-* Upload a file without sending it to anyone: messages.uploadMedia
-
-* Upload a secret chat file without sending it to anyone: messages.uploadEncryptedFile
-
-* Upload profile photo: photos.uploadProfilePhoto
-
-* Upload wallpaper: account.uploadWallPaper
-
-* Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
-
-* Validate requested payment info: payments.validateRequestedInfo
-
-* Verify email address: account.verifyEmail
-
-* Verify phone number: account.verifyPhone
-
diff --git a/old_docs/API_docs_v103/methods/account_changePhone.md b/old_docs/API_docs_v103/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/old_docs/API_docs_v103/methods/account_changePhone.md
+++ b/old_docs/API_docs_v103/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v103/methods/account_checkUsername.md b/old_docs/API_docs_v103/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v103/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v103/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v103/methods/account_confirmPhone.md b/old_docs/API_docs_v103/methods/account_confirmPhone.md
index b730c2dc..c114cd20 100644
--- a/old_docs/API_docs_v103/methods/account_confirmPhone.md
+++ b/old_docs/API_docs_v103/methods/account_confirmPhone.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = account.confirmPhone({phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_HASH_INVALID|Code hash invalid|
-|PHONE_CODE_EMPTY|phone_code is missing|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_HASH_INVALID|Code hash invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
diff --git a/old_docs/API_docs_v103/methods/account_getNotifySettings.md b/old_docs/API_docs_v103/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v103/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v103/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v103/methods/account_getPasswordSettings.md b/old_docs/API_docs_v103/methods/account_getPasswordSettings.md
index 8ebb78ee..e41c6b67 100644
--- a/old_docs/API_docs_v103/methods/account_getPasswordSettings.md
+++ b/old_docs/API_docs_v103/methods/account_getPasswordSettings.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+Get the current 2FA settings
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password|[InputCheckPasswordSRP](../types/InputCheckPasswordSRP.md) | You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [account\_PasswordSettings](../types/account_PasswordSettings.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$account_PasswordSettings = $MadelineProto->account->getPasswordSettings(['password' => InputCheckPasswordSRP, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+account_PasswordSettings = account.getPasswordSettings({password=InputCheckPasswordSRP, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v103/methods/account_getPrivacy.md b/old_docs/API_docs_v103/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/old_docs/API_docs_v103/methods/account_getPrivacy.md
+++ b/old_docs/API_docs_v103/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v103/methods/account_getTmpPassword.md b/old_docs/API_docs_v103/methods/account_getTmpPassword.md
index 3a29d97a..0ae4061f 100644
--- a/old_docs/API_docs_v103/methods/account_getTmpPassword.md
+++ b/old_docs/API_docs_v103/methods/account_getTmpPassword.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
account_TmpPassword = account.getTmpPassword({password=InputCheckPasswordSRP, period=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_HASH_INVALID|The provided password hash is invalid|
-|TMP_PASSWORD_DISABLED|The temporary password is disabled|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
+|400|TMP_PASSWORD_DISABLED|The temporary password is disabled|
diff --git a/old_docs/API_docs_v103/methods/account_registerDevice.md b/old_docs/API_docs_v103/methods/account_registerDevice.md
index 7e39dee0..549f1272 100644
--- a/old_docs/API_docs_v103/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v103/methods/account_registerDevice.md
@@ -47,10 +47,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({no_muted=Bool, token_type=int, token='string', app_sandbox=Bool, secret='bytes', other_uids={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v103/methods/account_reportPeer.md b/old_docs/API_docs_v103/methods/account_reportPeer.md
index a203c900..87b080eb 100644
--- a/old_docs/API_docs_v103/methods/account_reportPeer.md
+++ b/old_docs/API_docs_v103/methods/account_reportPeer.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.reportPeer({peer=InputPeer, reason=ReportReason, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v103/methods/account_resetAuthorization.md b/old_docs/API_docs_v103/methods/account_resetAuthorization.md
index c950992c..e8e8ecc4 100644
--- a/old_docs/API_docs_v103/methods/account_resetAuthorization.md
+++ b/old_docs/API_docs_v103/methods/account_resetAuthorization.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.resetAuthorization({hash=long, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v103/methods/account_sendChangePhoneCode.md b/old_docs/API_docs_v103/methods/account_sendChangePhoneCode.md
index 3a0923f8..26375a94 100644
--- a/old_docs/API_docs_v103/methods/account_sendChangePhoneCode.md
+++ b/old_docs/API_docs_v103/methods/account_sendChangePhoneCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendChangePhoneCode({phone_number='string', settings=CodeSettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v103/methods/account_sendConfirmPhoneCode.md b/old_docs/API_docs_v103/methods/account_sendConfirmPhoneCode.md
index 02896f84..426b70b8 100644
--- a/old_docs/API_docs_v103/methods/account_sendConfirmPhoneCode.md
+++ b/old_docs/API_docs_v103/methods/account_sendConfirmPhoneCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendConfirmPhoneCode({hash='string', settings=CodeSettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v103/methods/account_setAccountTTL.md b/old_docs/API_docs_v103/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/old_docs/API_docs_v103/methods/account_setAccountTTL.md
+++ b/old_docs/API_docs_v103/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/old_docs/API_docs_v103/methods/account_setPrivacy.md b/old_docs/API_docs_v103/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/old_docs/API_docs_v103/methods/account_setPrivacy.md
+++ b/old_docs/API_docs_v103/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v103/methods/account_unregisterDevice.md b/old_docs/API_docs_v103/methods/account_unregisterDevice.md
index 13d11e88..e39f0811 100644
--- a/old_docs/API_docs_v103/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v103/methods/account_unregisterDevice.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', other_uids={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v103/methods/account_updateNotifySettings.md b/old_docs/API_docs_v103/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v103/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v103/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v103/methods/account_updatePasswordSettings.md b/old_docs/API_docs_v103/methods/account_updatePasswordSettings.md
index 80f27228..7afb81ea 100644
--- a/old_docs/API_docs_v103/methods/account_updatePasswordSettings.md
+++ b/old_docs/API_docs_v103/methods/account_updatePasswordSettings.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password|[InputCheckPasswordSRP](../types/InputCheckPasswordSRP.md) | You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|new\_settings|[account\_PasswordInputSettings](../types/account_PasswordInputSettings.md) | New 2FA settings | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->account->updatePasswordSettings(['password' => InputCheckPasswordSRP, 'new_settings' => account_PasswordInputSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = account.updatePasswordSettings({password=InputCheckPasswordSRP, new_settings=account_PasswordInputSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EMAIL_UNCONFIRMED|Email unconfirmed|
+|400|EMAIL_UNCONFIRMED_X|The provided email isn't confirmed, X is the length of the verification code that was just sent to the email.|
+|400|NEW_SALT_INVALID|The new salt is invalid|
+|400|NEW_SETTINGS_INVALID|The new settings are invalid|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v103/methods/account_updateProfile.md b/old_docs/API_docs_v103/methods/account_updateProfile.md
index af5b6a0f..0d74c5e5 100644
--- a/old_docs/API_docs_v103/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v103/methods/account_updateProfile.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v103/methods/account_updateStatus.md b/old_docs/API_docs_v103/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v103/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v103/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v103/methods/account_updateUsername.md b/old_docs/API_docs_v103/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v103/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v103/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v103/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v103/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v103/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v103/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v103/methods/auth_cancelCode.md b/old_docs/API_docs_v103/methods/auth_cancelCode.md
index fcbd7713..a69e0118 100644
--- a/old_docs/API_docs_v103/methods/auth_cancelCode.md
+++ b/old_docs/API_docs_v103/methods/auth_cancelCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = auth.cancelCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v103/methods/auth_checkPassword.md b/old_docs/API_docs_v103/methods/auth_checkPassword.md
index 8d76c483..ad2a88a2 100644
--- a/old_docs/API_docs_v103/methods/auth_checkPassword.md
+++ b/old_docs/API_docs_v103/methods/auth_checkPassword.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password|[InputCheckPasswordSRP](../types/InputCheckPasswordSRP.md) | You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->checkPassword(['password' => InputCheckPasswordSRP, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.checkPassword({password=InputCheckPasswordSRP, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v103/methods/auth_exportAuthorization.md b/old_docs/API_docs_v103/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v103/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v103/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v103/methods/auth_importAuthorization.md b/old_docs/API_docs_v103/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v103/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v103/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v103/methods/auth_importBotAuthorization.md b/old_docs/API_docs_v103/methods/auth_importBotAuthorization.md
index 1a98c1b9..98a2f8ca 100644
--- a/old_docs/API_docs_v103/methods/auth_importBotAuthorization.md
+++ b/old_docs/API_docs_v103/methods/auth_importBotAuthorization.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|api\_id|[int](../types/int.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_hash|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|bot\_auth\_token|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importBotAuthorization(['api_id' => int, 'api_hash' => 'string', 'bot_auth_token' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importBotAuthorization({api_id=int, api_hash='string', bot_auth_token='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ACCESS_TOKEN_EXPIRED|Access token expired|
+|400|ACCESS_TOKEN_INVALID|Access token invalid|
+|400|API_ID_INVALID|API ID invalid|
diff --git a/old_docs/API_docs_v103/methods/auth_logOut.md b/old_docs/API_docs_v103/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v103/methods/auth_logOut.md
+++ b/old_docs/API_docs_v103/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v103/methods/auth_recoverPassword.md b/old_docs/API_docs_v103/methods/auth_recoverPassword.md
index 83ff5aed..d4bad9c5 100644
--- a/old_docs/API_docs_v103/methods/auth_recoverPassword.md
+++ b/old_docs/API_docs_v103/methods/auth_recoverPassword.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
auth_Authorization = auth.recoverPassword({code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_EMPTY|The provided code is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_EMPTY|The provided code is empty|
diff --git a/old_docs/API_docs_v103/methods/auth_requestPasswordRecovery.md b/old_docs/API_docs_v103/methods/auth_requestPasswordRecovery.md
index 1864bbb0..b6ad57ba 100644
--- a/old_docs/API_docs_v103/methods/auth_requestPasswordRecovery.md
+++ b/old_docs/API_docs_v103/methods/auth_requestPasswordRecovery.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
auth_PasswordRecovery = auth.requestPasswordRecovery({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_EMPTY|The provided password is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_EMPTY|The provided password is empty|
diff --git a/old_docs/API_docs_v103/methods/auth_resendCode.md b/old_docs/API_docs_v103/methods/auth_resendCode.md
index ff7868ea..ec730d75 100644
--- a/old_docs/API_docs_v103/methods/auth_resendCode.md
+++ b/old_docs/API_docs_v103/methods/auth_resendCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = auth.resendCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v103/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v103/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v103/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v103/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v103/methods/auth_sendCode.md b/old_docs/API_docs_v103/methods/auth_sendCode.md
index 9afebb55..83dfd500 100644
--- a/old_docs/API_docs_v103/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v103/methods/auth_sendCode.md
@@ -7,8 +7,58 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+|settings|[CodeSettings](../types/CodeSettings.md) | You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['phone_number' => 'string', 'api_id' => int, 'api_hash' => 'string', 'settings' => CodeSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({phone_number='string', api_id=int, api_hash='string', settings=CodeSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v103/methods/auth_signIn.md b/old_docs/API_docs_v103/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v103/methods/auth_signIn.md
+++ b/old_docs/API_docs_v103/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v103/methods/auth_signUp.md b/old_docs/API_docs_v103/methods/auth_signUp.md
index 15960145..31154486 100644
--- a/old_docs/API_docs_v103/methods/auth_signUp.md
+++ b/old_docs/API_docs_v103/methods/auth_signUp.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', phone_code='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v103/methods/bots_answerWebhookJSONQuery.md b/old_docs/API_docs_v103/methods/bots_answerWebhookJSONQuery.md
index ae0fa6d9..f2233514 100644
--- a/old_docs/API_docs_v103/methods/bots_answerWebhookJSONQuery.md
+++ b/old_docs/API_docs_v103/methods/bots_answerWebhookJSONQuery.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = bots.answerWebhookJSONQuery({query_id=long, data=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v103/methods/bots_sendCustomRequest.md b/old_docs/API_docs_v103/methods/bots_sendCustomRequest.md
index c1fd8183..8a6a2df5 100644
--- a/old_docs/API_docs_v103/methods/bots_sendCustomRequest.md
+++ b/old_docs/API_docs_v103/methods/bots_sendCustomRequest.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
DataJSON = bots.sendCustomRequest({custom_method='string', params=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v103/methods/channels_checkUsername.md b/old_docs/API_docs_v103/methods/channels_checkUsername.md
index 483a2f6f..52365d34 100644
--- a/old_docs/API_docs_v103/methods/channels_checkUsername.md
+++ b/old_docs/API_docs_v103/methods/channels_checkUsername.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Bool = channels.checkUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v103/methods/channels_createChannel.md b/old_docs/API_docs_v103/methods/channels_createChannel.md
index 1b34ffcd..9f547934 100644
--- a/old_docs/API_docs_v103/methods/channels_createChannel.md
+++ b/old_docs/API_docs_v103/methods/channels_createChannel.md
@@ -47,12 +47,12 @@ Or, if you're into Lua:
Updates = channels.createChannel({broadcast=Bool, megagroup=Bool, title='string', about='string', geo_point=InputGeoPoint, address='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_TITLE_EMPTY|No chat title provided|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
+|406|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v103/methods/channels_deleteChannel.md b/old_docs/API_docs_v103/methods/channels_deleteChannel.md
index 53a9c23d..1b8d2d48 100644
--- a/old_docs/API_docs_v103/methods/channels_deleteChannel.md
+++ b/old_docs/API_docs_v103/methods/channels_deleteChannel.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Updates = channels.deleteChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v103/methods/channels_deleteMessages.md b/old_docs/API_docs_v103/methods/channels_deleteMessages.md
index f76a9ad1..463ebad0 100644
--- a/old_docs/API_docs_v103/methods/channels_deleteMessages.md
+++ b/old_docs/API_docs_v103/methods/channels_deleteMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_AffectedMessages = channels.deleteMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v103/methods/channels_deleteUserHistory.md b/old_docs/API_docs_v103/methods/channels_deleteUserHistory.md
index 0a4e7d82..33905a7e 100644
--- a/old_docs/API_docs_v103/methods/channels_deleteUserHistory.md
+++ b/old_docs/API_docs_v103/methods/channels_deleteUserHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedHistory = channels.deleteUserHistory({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v103/methods/channels_editAdmin.md b/old_docs/API_docs_v103/methods/channels_editAdmin.md
index 2ea10cf0..5f311714 100644
--- a/old_docs/API_docs_v103/methods/channels_editAdmin.md
+++ b/old_docs/API_docs_v103/methods/channels_editAdmin.md
@@ -44,19 +44,19 @@ Or, if you're into Lua:
Updates = channels.editAdmin({channel=InputChannel, user_id=InputUser, admin_rights=ChatAdminRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ADMINS_TOO_MUCH|There are too many admins|
-|BOT_CHANNELS_NA|Bots can't edit admin privileges|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
-|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ADMINS_TOO_MUCH|There are too many admins|
+|400|BOT_CHANNELS_NA|Bots can't edit admin privileges|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
+|403|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v103/methods/channels_editBanned.md b/old_docs/API_docs_v103/methods/channels_editBanned.md
index 8b08ed22..b9f1b58a 100644
--- a/old_docs/API_docs_v103/methods/channels_editBanned.md
+++ b/old_docs/API_docs_v103/methods/channels_editBanned.md
@@ -44,14 +44,14 @@ Or, if you're into Lua:
Updates = channels.editBanned({channel=InputChannel, user_id=InputUser, banned_rights=ChatBannedRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ADMIN_INVALID|You're not an admin|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ADMIN_INVALID|You're not an admin|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v103/methods/channels_editPhoto.md b/old_docs/API_docs_v103/methods/channels_editPhoto.md
index bec0ba48..caef32d5 100644
--- a/old_docs/API_docs_v103/methods/channels_editPhoto.md
+++ b/old_docs/API_docs_v103/methods/channels_editPhoto.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editPhoto({channel=InputChannel, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|PHOTO_INVALID|Photo invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|PHOTO_INVALID|Photo invalid|
diff --git a/old_docs/API_docs_v103/methods/channels_editTitle.md b/old_docs/API_docs_v103/methods/channels_editTitle.md
index b5efeb39..d7cb33da 100644
--- a/old_docs/API_docs_v103/methods/channels_editTitle.md
+++ b/old_docs/API_docs_v103/methods/channels_editTitle.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editTitle({channel=InputChannel, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v103/methods/channels_exportMessageLink.md b/old_docs/API_docs_v103/methods/channels_exportMessageLink.md
index 5dea54a7..fc2f248b 100644
--- a/old_docs/API_docs_v103/methods/channels_exportMessageLink.md
+++ b/old_docs/API_docs_v103/methods/channels_exportMessageLink.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
ExportedMessageLink = channels.exportMessageLink({channel=InputChannel, id=int, grouped=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v103/methods/channels_getAdminLog.md b/old_docs/API_docs_v103/methods/channels_getAdminLog.md
index 377c7320..adb87748 100644
--- a/old_docs/API_docs_v103/methods/channels_getAdminLog.md
+++ b/old_docs/API_docs_v103/methods/channels_getAdminLog.md
@@ -48,12 +48,12 @@ Or, if you're into Lua:
channels_AdminLogResults = channels.getAdminLog({channel=InputChannel, q='string', events_filter=ChannelAdminLogEventsFilter, admins={InputUser}, max_id=long, min_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v103/methods/channels_getChannels.md b/old_docs/API_docs_v103/methods/channels_getChannels.md
index 78d50641..95d7a188 100644
--- a/old_docs/API_docs_v103/methods/channels_getChannels.md
+++ b/old_docs/API_docs_v103/methods/channels_getChannels.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = channels.getChannels({id={InputChannel}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v103/methods/channels_getFullChannel.md b/old_docs/API_docs_v103/methods/channels_getFullChannel.md
index 45a8ec72..ebd53de4 100644
--- a/old_docs/API_docs_v103/methods/channels_getFullChannel.md
+++ b/old_docs/API_docs_v103/methods/channels_getFullChannel.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->channels->getFullChannel(['channel' => InputChannel, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = channels.getFullChannel({channel=InputChannel, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v103/methods/channels_getLeftChannels.md b/old_docs/API_docs_v103/methods/channels_getLeftChannels.md
index 2d256964..fac7ae07 100644
--- a/old_docs/API_docs_v103/methods/channels_getLeftChannels.md
+++ b/old_docs/API_docs_v103/methods/channels_getLeftChannels.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_Chats = channels.getLeftChannels({offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TAKEOUT_REQUIRED|A takeout session has to be initialized, first|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|TAKEOUT_REQUIRED|A takeout session has to be initialized, first|
diff --git a/old_docs/API_docs_v103/methods/channels_getMessages.md b/old_docs/API_docs_v103/methods/channels_getMessages.md
index 90cf5a47..f1ae0a4d 100644
--- a/old_docs/API_docs_v103/methods/channels_getMessages.md
+++ b/old_docs/API_docs_v103/methods/channels_getMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_Messages = channels.getMessages({channel=InputChannel, id={InputMessage}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
diff --git a/old_docs/API_docs_v103/methods/channels_getParticipant.md b/old_docs/API_docs_v103/methods/channels_getParticipant.md
index 6633114f..808156fd 100644
--- a/old_docs/API_docs_v103/methods/channels_getParticipant.md
+++ b/old_docs/API_docs_v103/methods/channels_getParticipant.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
channels_ChannelParticipant = channels.getParticipant({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v103/methods/channels_getParticipants.md b/old_docs/API_docs_v103/methods/channels_getParticipants.md
index 5ff242e6..fb7a39df 100644
--- a/old_docs/API_docs_v103/methods/channels_getParticipants.md
+++ b/old_docs/API_docs_v103/methods/channels_getParticipants.md
@@ -46,14 +46,14 @@ Or, if you're into Lua:
channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, filter=ChannelParticipantsFilter, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v103/methods/channels_inviteToChannel.md b/old_docs/API_docs_v103/methods/channels_inviteToChannel.md
index f7093f13..d8c5e88a 100644
--- a/old_docs/API_docs_v103/methods/channels_inviteToChannel.md
+++ b/old_docs/API_docs_v103/methods/channels_inviteToChannel.md
@@ -43,25 +43,25 @@ Or, if you're into Lua:
Updates = channels.inviteToChannel({channel=InputChannel, users={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
-|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_BLOCKED|User blocked|
-|USER_BOT|Bots can only be admins in channels.|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_KICKED|This user was kicked from this supergroup/channel|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
+|400|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_BLOCKED|User blocked|
+|400|USER_BOT|Bots can only be admins in channels.|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_KICKED|This user was kicked from this supergroup/channel|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v103/methods/channels_joinChannel.md b/old_docs/API_docs_v103/methods/channels_joinChannel.md
index b056031a..a4a7c177 100644
--- a/old_docs/API_docs_v103/methods/channels_joinChannel.md
+++ b/old_docs/API_docs_v103/methods/channels_joinChannel.md
@@ -42,15 +42,15 @@ Or, if you're into Lua:
Updates = channels.joinChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
diff --git a/old_docs/API_docs_v103/methods/channels_leaveChannel.md b/old_docs/API_docs_v103/methods/channels_leaveChannel.md
index fdea13ba..6538d443 100644
--- a/old_docs/API_docs_v103/methods/channels_leaveChannel.md
+++ b/old_docs/API_docs_v103/methods/channels_leaveChannel.md
@@ -42,14 +42,14 @@ Or, if you're into Lua:
Updates = channels.leaveChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
-|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
diff --git a/old_docs/API_docs_v103/methods/channels_readHistory.md b/old_docs/API_docs_v103/methods/channels_readHistory.md
index 93dc075f..3532dae0 100644
--- a/old_docs/API_docs_v103/methods/channels_readHistory.md
+++ b/old_docs/API_docs_v103/methods/channels_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readHistory({channel=InputChannel, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v103/methods/channels_readMessageContents.md b/old_docs/API_docs_v103/methods/channels_readMessageContents.md
index 80ddf2b0..8cd8c620 100644
--- a/old_docs/API_docs_v103/methods/channels_readMessageContents.md
+++ b/old_docs/API_docs_v103/methods/channels_readMessageContents.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readMessageContents({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v103/methods/channels_reportSpam.md b/old_docs/API_docs_v103/methods/channels_reportSpam.md
index db80676a..7e273cc5 100644
--- a/old_docs/API_docs_v103/methods/channels_reportSpam.md
+++ b/old_docs/API_docs_v103/methods/channels_reportSpam.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
Bool = channels.reportSpam({channel=InputChannel, user_id=InputUser, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
diff --git a/old_docs/API_docs_v103/methods/channels_setStickers.md b/old_docs/API_docs_v103/methods/channels_setStickers.md
index 10cd68bf..c9b95527 100644
--- a/old_docs/API_docs_v103/methods/channels_setStickers.md
+++ b/old_docs/API_docs_v103/methods/channels_setStickers.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.setStickers({channel=InputChannel, stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PARTICIPANTS_TOO_FEW|Not enough participants|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PARTICIPANTS_TOO_FEW|Not enough participants|
diff --git a/old_docs/API_docs_v103/methods/channels_toggleSignatures.md b/old_docs/API_docs_v103/methods/channels_toggleSignatures.md
index cdfc0fda..f8624946 100644
--- a/old_docs/API_docs_v103/methods/channels_toggleSignatures.md
+++ b/old_docs/API_docs_v103/methods/channels_toggleSignatures.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = channels.toggleSignatures({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v103/methods/channels_updateUsername.md b/old_docs/API_docs_v103/methods/channels_updateUsername.md
index 677712f9..48d250e6 100644
--- a/old_docs/API_docs_v103/methods/channels_updateUsername.md
+++ b/old_docs/API_docs_v103/methods/channels_updateUsername.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Bool = channels.updateUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_OCCUPIED|The provided username is already occupied|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
diff --git a/old_docs/API_docs_v103/methods/contacts_addContact.md b/old_docs/API_docs_v103/methods/contacts_addContact.md
index 0d5aae8c..80f540bb 100644
--- a/old_docs/API_docs_v103/methods/contacts_addContact.md
+++ b/old_docs/API_docs_v103/methods/contacts_addContact.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
Updates = contacts.addContact({add_phone_privacy_exception=Bool, id=InputUser, first_name='string', last_name='string', phone='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v103/methods/contacts_block.md b/old_docs/API_docs_v103/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v103/methods/contacts_block.md
+++ b/old_docs/API_docs_v103/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v103/methods/contacts_deleteContacts.md b/old_docs/API_docs_v103/methods/contacts_deleteContacts.md
index b4f47c1b..007fd8d4 100644
--- a/old_docs/API_docs_v103/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v103/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Updates = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v103/methods/contacts_getStatuses.md b/old_docs/API_docs_v103/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v103/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v103/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v103/methods/contacts_getTopPeers.md b/old_docs/API_docs_v103/methods/contacts_getTopPeers.md
index 586fb99e..8c307877 100644
--- a/old_docs/API_docs_v103/methods/contacts_getTopPeers.md
+++ b/old_docs/API_docs_v103/methods/contacts_getTopPeers.md
@@ -52,10 +52,10 @@ Or, if you're into Lua:
contacts_TopPeers = contacts.getTopPeers({correspondents=Bool, bots_pm=Bool, bots_inline=Bool, phone_calls=Bool, forward_users=Bool, forward_chats=Bool, groups=Bool, channels=Bool, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TYPES_EMPTY|No top peer type was provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TYPES_EMPTY|No top peer type was provided|
diff --git a/old_docs/API_docs_v103/methods/contacts_resetTopPeerRating.md b/old_docs/API_docs_v103/methods/contacts_resetTopPeerRating.md
index 43cf1685..787be177 100644
--- a/old_docs/API_docs_v103/methods/contacts_resetTopPeerRating.md
+++ b/old_docs/API_docs_v103/methods/contacts_resetTopPeerRating.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = contacts.resetTopPeerRating({category=TopPeerCategory, peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v103/methods/contacts_resolveUsername.md b/old_docs/API_docs_v103/methods/contacts_resolveUsername.md
index fab56bb1..68f709db 100644
--- a/old_docs/API_docs_v103/methods/contacts_resolveUsername.md
+++ b/old_docs/API_docs_v103/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [contacts\_ResolvedPeer](../types/contacts_ResolvedPeer.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$contacts_ResolvedPeer = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+contacts_ResolvedPeer = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v103/methods/contacts_search.md b/old_docs/API_docs_v103/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v103/methods/contacts_search.md
+++ b/old_docs/API_docs_v103/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v103/methods/contacts_unblock.md b/old_docs/API_docs_v103/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v103/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v103/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v103/methods/folders_editPeerFolders.md b/old_docs/API_docs_v103/methods/folders_editPeerFolders.md
index f4884643..28c8db40 100644
--- a/old_docs/API_docs_v103/methods/folders_editPeerFolders.md
+++ b/old_docs/API_docs_v103/methods/folders_editPeerFolders.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Updates = folders.editPeerFolders({folder_peers={InputFolderPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FOLDER_ID_INVALID|Invalid folder ID|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FOLDER_ID_INVALID|Invalid folder ID|
diff --git a/old_docs/API_docs_v103/methods/help_getCdnConfig.md b/old_docs/API_docs_v103/methods/help_getCdnConfig.md
index 9e047a1d..ba526365 100644
--- a/old_docs/API_docs_v103/methods/help_getCdnConfig.md
+++ b/old_docs/API_docs_v103/methods/help_getCdnConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
CdnConfig = help.getCdnConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v103/methods/help_getConfig.md b/old_docs/API_docs_v103/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v103/methods/help_getConfig.md
+++ b/old_docs/API_docs_v103/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v103/methods/initConnection.md b/old_docs/API_docs_v103/methods/initConnection.md
index 69d29401..5c4bfab9 100644
--- a/old_docs/API_docs_v103/methods/initConnection.md
+++ b/old_docs/API_docs_v103/methods/initConnection.md
@@ -50,11 +50,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', system_lang_code='string', lang_pack='string', lang_code='string', proxy=InputClientProxy, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v103/methods/invokeWithLayer.md b/old_docs/API_docs_v103/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/old_docs/API_docs_v103/methods/invokeWithLayer.md
+++ b/old_docs/API_docs_v103/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v103/methods/langpack_getDifference.md b/old_docs/API_docs_v103/methods/langpack_getDifference.md
index 712d88f4..6995c17d 100644
--- a/old_docs/API_docs_v103/methods/langpack_getDifference.md
+++ b/old_docs/API_docs_v103/methods/langpack_getDifference.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getDifference({lang_pack='string', lang_code='string', from_version=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v103/methods/langpack_getLangPack.md b/old_docs/API_docs_v103/methods/langpack_getLangPack.md
index 55d30529..d2280670 100644
--- a/old_docs/API_docs_v103/methods/langpack_getLangPack.md
+++ b/old_docs/API_docs_v103/methods/langpack_getLangPack.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getLangPack({lang_pack='string', lang_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v103/methods/langpack_getLanguages.md b/old_docs/API_docs_v103/methods/langpack_getLanguages.md
index d4b9734e..686a50f5 100644
--- a/old_docs/API_docs_v103/methods/langpack_getLanguages.md
+++ b/old_docs/API_docs_v103/methods/langpack_getLanguages.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Vector_of_LangPackLanguage = langpack.getLanguages({lang_pack='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v103/methods/langpack_getStrings.md b/old_docs/API_docs_v103/methods/langpack_getStrings.md
index 65f65dfc..f0463eed 100644
--- a/old_docs/API_docs_v103/methods/langpack_getStrings.md
+++ b/old_docs/API_docs_v103/methods/langpack_getStrings.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Vector_of_LangPackString = langpack.getStrings({lang_pack='string', lang_code='string', keys={'string'}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_acceptEncryption.md b/old_docs/API_docs_v103/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v103/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v103/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v103/methods/messages_addChatUser.md b/old_docs/API_docs_v103/methods/messages_addChatUser.md
index bc0d6253..b5e164b2 100644
--- a/old_docs/API_docs_v103/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v103/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
Updates = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v103/methods/messages_checkChatInvite.md b/old_docs/API_docs_v103/methods/messages_checkChatInvite.md
index de28b09b..0d13d55e 100644
--- a/old_docs/API_docs_v103/methods/messages_checkChatInvite.md
+++ b/old_docs/API_docs_v103/methods/messages_checkChatInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ChatInvite = messages.checkChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_createChat.md b/old_docs/API_docs_v103/methods/messages_createChat.md
index 8f6e9672..b2623f1d 100644
--- a/old_docs/API_docs_v103/methods/messages_createChat.md
+++ b/old_docs/API_docs_v103/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v103/methods/messages_deleteChatUser.md b/old_docs/API_docs_v103/methods/messages_deleteChatUser.md
index 63529571..11b9b220 100644
--- a/old_docs/API_docs_v103/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v103/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v103/methods/messages_deleteHistory.md b/old_docs/API_docs_v103/methods/messages_deleteHistory.md
index faddfda5..5a38e404 100644
--- a/old_docs/API_docs_v103/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v103/methods/messages_deleteHistory.md
@@ -45,10 +45,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({just_clear=Bool, revoke=Bool, peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_deleteMessages.md b/old_docs/API_docs_v103/methods/messages_deleteMessages.md
index 4c65080a..41517dd0 100644
--- a/old_docs/API_docs_v103/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v103/methods/messages_deleteMessages.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.deleteMessages({revoke=Bool, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v103/methods/messages_discardEncryption.md b/old_docs/API_docs_v103/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v103/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v103/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_editChatAbout.md b/old_docs/API_docs_v103/methods/messages_editChatAbout.md
index 6c562c12..05fff24f 100644
--- a/old_docs/API_docs_v103/methods/messages_editChatAbout.md
+++ b/old_docs/API_docs_v103/methods/messages_editChatAbout.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.editChatAbout({peer=InputPeer, about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_editChatAdmin.md b/old_docs/API_docs_v103/methods/messages_editChatAdmin.md
index 2b4dc94c..6f6c1376 100644
--- a/old_docs/API_docs_v103/methods/messages_editChatAdmin.md
+++ b/old_docs/API_docs_v103/methods/messages_editChatAdmin.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.editChatAdmin({chat_id=InputPeer, user_id=InputUser, is_admin=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_editChatDefaultBannedRights.md b/old_docs/API_docs_v103/methods/messages_editChatDefaultBannedRights.md
index 30e7836e..a8e075eb 100644
--- a/old_docs/API_docs_v103/methods/messages_editChatDefaultBannedRights.md
+++ b/old_docs/API_docs_v103/methods/messages_editChatDefaultBannedRights.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatDefaultBannedRights({peer=InputPeer, banned_rights=ChatBannedRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BANNED_RIGHTS_INVALID|You provided some invalid flags in the banned rights|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BANNED_RIGHTS_INVALID|You provided some invalid flags in the banned rights|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_editChatPhoto.md b/old_docs/API_docs_v103/methods/messages_editChatPhoto.md
index 2a82c232..a21a03b9 100644
--- a/old_docs/API_docs_v103/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v103/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Updates = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_editChatTitle.md b/old_docs/API_docs_v103/methods/messages_editChatTitle.md
index 2c338ad6..72f78741 100644
--- a/old_docs/API_docs_v103/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v103/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v103/methods/messages_editInlineBotMessage.md b/old_docs/API_docs_v103/methods/messages_editInlineBotMessage.md
index 67313f15..5f7a31c9 100644
--- a/old_docs/API_docs_v103/methods/messages_editInlineBotMessage.md
+++ b/old_docs/API_docs_v103/methods/messages_editInlineBotMessage.md
@@ -96,11 +96,11 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
diff --git a/old_docs/API_docs_v103/methods/messages_editMessage.md b/old_docs/API_docs_v103/methods/messages_editMessage.md
index 720f4285..d394d1aa 100644
--- a/old_docs/API_docs_v103/methods/messages_editMessage.md
+++ b/old_docs/API_docs_v103/methods/messages_editMessage.md
@@ -97,20 +97,20 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v103/methods/messages_exportChatInvite.md b/old_docs/API_docs_v103/methods/messages_exportChatInvite.md
index 9028d4cd..c78d7fb9 100644
--- a/old_docs/API_docs_v103/methods/messages_exportChatInvite.md
+++ b/old_docs/API_docs_v103/methods/messages_exportChatInvite.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
ExportedChatInvite = messages.exportChatInvite({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_faveSticker.md b/old_docs/API_docs_v103/methods/messages_faveSticker.md
index a8b1ab56..9f9f423d 100644
--- a/old_docs/API_docs_v103/methods/messages_faveSticker.md
+++ b/old_docs/API_docs_v103/methods/messages_faveSticker.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.faveSticker({id=InputDocument, unfave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_forwardMessages.md b/old_docs/API_docs_v103/methods/messages_forwardMessages.md
index d2453d05..743fa7a6 100644
--- a/old_docs/API_docs_v103/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v103/methods/messages_forwardMessages.md
@@ -48,29 +48,29 @@ Or, if you're into Lua:
Updates = messages.forwardMessages({silent=Bool, background=Bool, with_my_score=Bool, grouped=Bool, from_peer=InputPeer, id={int}, to_peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v103/methods/messages_getBotCallbackAnswer.md b/old_docs/API_docs_v103/methods/messages_getBotCallbackAnswer.md
index f97fa5b0..3f8cc23b 100644
--- a/old_docs/API_docs_v103/methods/messages_getBotCallbackAnswer.md
+++ b/old_docs/API_docs_v103/methods/messages_getBotCallbackAnswer.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
messages_BotCallbackAnswer = messages.getBotCallbackAnswer({game=Bool, peer=InputPeer, msg_id=int, data='bytes', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v103/methods/messages_getChats.md b/old_docs/API_docs_v103/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/old_docs/API_docs_v103/methods/messages_getChats.md
+++ b/old_docs/API_docs_v103/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_getCommonChats.md b/old_docs/API_docs_v103/methods/messages_getCommonChats.md
index 9470a0ee..cff23c3f 100644
--- a/old_docs/API_docs_v103/methods/messages_getCommonChats.md
+++ b/old_docs/API_docs_v103/methods/messages_getCommonChats.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_Chats = messages.getCommonChats({user_id=InputUser, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_getDhConfig.md b/old_docs/API_docs_v103/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v103/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v103/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_getDialogs.md b/old_docs/API_docs_v103/methods/messages_getDialogs.md
index 7e6b77a6..d6bcd23d 100644
--- a/old_docs/API_docs_v103/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v103/methods/messages_getDialogs.md
@@ -48,13 +48,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({exclude_pinned=Bool, folder_id=int, offset_date=int, offset_id=int, offset_peer=InputPeer, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v103/methods/messages_getDocumentByHash.md b/old_docs/API_docs_v103/methods/messages_getDocumentByHash.md
index 73a235d5..06469c52 100644
--- a/old_docs/API_docs_v103/methods/messages_getDocumentByHash.md
+++ b/old_docs/API_docs_v103/methods/messages_getDocumentByHash.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Document = messages.getDocumentByHash({sha256='bytes', size=int, mime_type='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_getFullChat.md b/old_docs/API_docs_v103/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v103/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v103/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_getGameHighScores.md b/old_docs/API_docs_v103/methods/messages_getGameHighScores.md
index 249e1d09..5c484bbb 100644
--- a/old_docs/API_docs_v103/methods/messages_getGameHighScores.md
+++ b/old_docs/API_docs_v103/methods/messages_getGameHighScores.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
messages_HighScores = messages.getGameHighScores({peer=InputPeer, id=int, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v103/methods/messages_getHistory.md b/old_docs/API_docs_v103/methods/messages_getHistory.md
index d623a61e..a0389d7b 100644
--- a/old_docs/API_docs_v103/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v103/methods/messages_getHistory.md
@@ -49,16 +49,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset_id=int, offset_date=int, add_offset=int, limit=int, max_id=int, min_id=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v103/methods/messages_getInlineBotResults.md b/old_docs/API_docs_v103/methods/messages_getInlineBotResults.md
index 1efcb412..17d678b7 100644
--- a/old_docs/API_docs_v103/methods/messages_getInlineBotResults.md
+++ b/old_docs/API_docs_v103/methods/messages_getInlineBotResults.md
@@ -46,13 +46,13 @@ Or, if you're into Lua:
messages_BotResults = messages.getInlineBotResults({bot=InputUser, peer=InputPeer, geo_point=InputGeoPoint, query='string', offset='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
-|BOT_INVALID|This is not a valid bot|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
+|400|BOT_INVALID|This is not a valid bot|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v103/methods/messages_getInlineGameHighScores.md b/old_docs/API_docs_v103/methods/messages_getInlineGameHighScores.md
index e68c6db8..ac33b6b8 100644
--- a/old_docs/API_docs_v103/methods/messages_getInlineGameHighScores.md
+++ b/old_docs/API_docs_v103/methods/messages_getInlineGameHighScores.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_HighScores = messages.getInlineGameHighScores({id=InputBotInlineMessageID, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v103/methods/messages_getMessageEditData.md b/old_docs/API_docs_v103/methods/messages_getMessageEditData.md
index 7f1b7164..b907d78c 100644
--- a/old_docs/API_docs_v103/methods/messages_getMessageEditData.md
+++ b/old_docs/API_docs_v103/methods/messages_getMessageEditData.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_MessageEditData = messages.getMessageEditData({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v103/methods/messages_getMessagesViews.md b/old_docs/API_docs_v103/methods/messages_getMessagesViews.md
index 3d490315..143e568c 100644
--- a/old_docs/API_docs_v103/methods/messages_getMessagesViews.md
+++ b/old_docs/API_docs_v103/methods/messages_getMessagesViews.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
Vector_of_int = messages.getMessagesViews({peer=InputPeer, id={int}, increment=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_getPeerDialogs.md b/old_docs/API_docs_v103/methods/messages_getPeerDialogs.md
index 02eb9b43..17e0d11e 100644
--- a/old_docs/API_docs_v103/methods/messages_getPeerDialogs.md
+++ b/old_docs/API_docs_v103/methods/messages_getPeerDialogs.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPeerDialogs({peers={InputDialogPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_getPeerSettings.md b/old_docs/API_docs_v103/methods/messages_getPeerSettings.md
index 26dafb9b..69032ff5 100644
--- a/old_docs/API_docs_v103/methods/messages_getPeerSettings.md
+++ b/old_docs/API_docs_v103/methods/messages_getPeerSettings.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
PeerSettings = messages.getPeerSettings({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_getPinnedDialogs.md b/old_docs/API_docs_v103/methods/messages_getPinnedDialogs.md
index 8d23e4fa..7fbfecd0 100644
--- a/old_docs/API_docs_v103/methods/messages_getPinnedDialogs.md
+++ b/old_docs/API_docs_v103/methods/messages_getPinnedDialogs.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPinnedDialogs({folder_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FOLDER_ID_INVALID|Invalid folder ID|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FOLDER_ID_INVALID|Invalid folder ID|
diff --git a/old_docs/API_docs_v103/methods/messages_getStatsURL.md b/old_docs/API_docs_v103/methods/messages_getStatsURL.md
index 4f7c08d9..f0c44447 100644
--- a/old_docs/API_docs_v103/methods/messages_getStatsURL.md
+++ b/old_docs/API_docs_v103/methods/messages_getStatsURL.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
StatsURL = messages.getStatsURL({dark=Bool, peer=InputPeer, params='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_getStickerSet.md b/old_docs/API_docs_v103/methods/messages_getStickerSet.md
index 57bce84d..487316cc 100644
--- a/old_docs/API_docs_v103/methods/messages_getStickerSet.md
+++ b/old_docs/API_docs_v103/methods/messages_getStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_StickerSet = messages.getStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_getUnreadMentions.md b/old_docs/API_docs_v103/methods/messages_getUnreadMentions.md
index 1fa1f269..923229eb 100644
--- a/old_docs/API_docs_v103/methods/messages_getUnreadMentions.md
+++ b/old_docs/API_docs_v103/methods/messages_getUnreadMentions.md
@@ -47,10 +47,10 @@ Or, if you're into Lua:
messages_Messages = messages.getUnreadMentions({peer=InputPeer, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_getWebPage.md b/old_docs/API_docs_v103/methods/messages_getWebPage.md
index ce51ff41..63ef5e93 100644
--- a/old_docs/API_docs_v103/methods/messages_getWebPage.md
+++ b/old_docs/API_docs_v103/methods/messages_getWebPage.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
WebPage = messages.getWebPage({url='string', hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|WC_CONVERT_URL_INVALID|WC convert URL invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|WC_CONVERT_URL_INVALID|WC convert URL invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_importChatInvite.md b/old_docs/API_docs_v103/methods/messages_importChatInvite.md
index 12120867..101b4b19 100644
--- a/old_docs/API_docs_v103/methods/messages_importChatInvite.md
+++ b/old_docs/API_docs_v103/methods/messages_importChatInvite.md
@@ -42,16 +42,16 @@ Or, if you're into Lua:
Updates = messages.importChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v103/methods/messages_installStickerSet.md b/old_docs/API_docs_v103/methods/messages_installStickerSet.md
index 21a57a85..67f2aca0 100644
--- a/old_docs/API_docs_v103/methods/messages_installStickerSet.md
+++ b/old_docs/API_docs_v103/methods/messages_installStickerSet.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_StickerSetInstallResult = messages.installStickerSet({stickerset=InputStickerSet, archived=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_migrateChat.md b/old_docs/API_docs_v103/methods/messages_migrateChat.md
index a72f4c11..ee4010eb 100644
--- a/old_docs/API_docs_v103/methods/messages_migrateChat.md
+++ b/old_docs/API_docs_v103/methods/messages_migrateChat.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
Updates = messages.migrateChat({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v103/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v103/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v103/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v103/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v103/methods/messages_readHistory.md b/old_docs/API_docs_v103/methods/messages_readHistory.md
index 2ad5cd09..a7f0eca7 100644
--- a/old_docs/API_docs_v103/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v103/methods/messages_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.readHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v103/methods/messages_receivedQueue.md b/old_docs/API_docs_v103/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v103/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v103/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v103/methods/messages_reorderPinnedDialogs.md b/old_docs/API_docs_v103/methods/messages_reorderPinnedDialogs.md
index 70482817..d83341a6 100644
--- a/old_docs/API_docs_v103/methods/messages_reorderPinnedDialogs.md
+++ b/old_docs/API_docs_v103/methods/messages_reorderPinnedDialogs.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.reorderPinnedDialogs({force=Bool, folder_id=int, order={InputDialogPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_reportEncryptedSpam.md b/old_docs/API_docs_v103/methods/messages_reportEncryptedSpam.md
index 9b1e868b..aeac27ef 100644
--- a/old_docs/API_docs_v103/methods/messages_reportEncryptedSpam.md
+++ b/old_docs/API_docs_v103/methods/messages_reportEncryptedSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportEncryptedSpam({peer=InputEncryptedChat, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_reportSpam.md b/old_docs/API_docs_v103/methods/messages_reportSpam.md
index e92fba13..dc256e55 100644
--- a/old_docs/API_docs_v103/methods/messages_reportSpam.md
+++ b/old_docs/API_docs_v103/methods/messages_reportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_requestEncryption.md b/old_docs/API_docs_v103/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v103/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v103/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_saveDraft.md b/old_docs/API_docs_v103/methods/messages_saveDraft.md
index 791ce234..ea6d407e 100644
--- a/old_docs/API_docs_v103/methods/messages_saveDraft.md
+++ b/old_docs/API_docs_v103/methods/messages_saveDraft.md
@@ -89,10 +89,10 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_saveGif.md b/old_docs/API_docs_v103/methods/messages_saveGif.md
index f504ff9e..010e17ec 100644
--- a/old_docs/API_docs_v103/methods/messages_saveGif.md
+++ b/old_docs/API_docs_v103/methods/messages_saveGif.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.saveGif({id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|GIF_ID_INVALID|The provided GIF ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|GIF_ID_INVALID|The provided GIF ID is invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_saveRecentSticker.md b/old_docs/API_docs_v103/methods/messages_saveRecentSticker.md
index 98c74efd..072b6fe9 100644
--- a/old_docs/API_docs_v103/methods/messages_saveRecentSticker.md
+++ b/old_docs/API_docs_v103/methods/messages_saveRecentSticker.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.saveRecentSticker({attached=Bool, id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_search.md b/old_docs/API_docs_v103/methods/messages_search.md
index 83cb34c6..07529b40 100644
--- a/old_docs/API_docs_v103/methods/messages_search.md
+++ b/old_docs/API_docs_v103/methods/messages_search.md
@@ -53,16 +53,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({peer=InputPeer, q='string', from_id=InputUser, filter=MessagesFilter, min_date=int, max_date=int, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_searchGifs.md b/old_docs/API_docs_v103/methods/messages_searchGifs.md
index 7be4173b..1602d35e 100644
--- a/old_docs/API_docs_v103/methods/messages_searchGifs.md
+++ b/old_docs/API_docs_v103/methods/messages_searchGifs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_FoundGifs = messages.searchGifs({q='string', offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v103/methods/messages_searchGlobal.md b/old_docs/API_docs_v103/methods/messages_searchGlobal.md
index 8b87dcf3..a07e21e8 100644
--- a/old_docs/API_docs_v103/methods/messages_searchGlobal.md
+++ b/old_docs/API_docs_v103/methods/messages_searchGlobal.md
@@ -47,10 +47,10 @@ Or, if you're into Lua:
messages_Messages = messages.searchGlobal({folder_id=int, q='string', offset_rate=int, offset_peer=InputPeer, offset_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v103/methods/messages_sendEncrypted.md b/old_docs/API_docs_v103/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v103/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v103/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v103/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v103/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v103/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v103/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v103/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v103/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v103/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v103/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v103/methods/messages_sendInlineBotResult.md b/old_docs/API_docs_v103/methods/messages_sendInlineBotResult.md
index 96d7571a..642ba34f 100644
--- a/old_docs/API_docs_v103/methods/messages_sendInlineBotResult.md
+++ b/old_docs/API_docs_v103/methods/messages_sendInlineBotResult.md
@@ -49,15 +49,15 @@ Or, if you're into Lua:
Updates = messages.sendInlineBotResult({silent=Bool, background=Bool, clear_draft=Bool, hide_via=Bool, peer=InputPeer, reply_to_msg_id=int, query_id=long, id='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INLINE_RESULT_EXPIRED|The inline query expired|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|QUERY_ID_EMPTY|The query ID is empty|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INLINE_RESULT_EXPIRED|The inline query expired|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|QUERY_ID_EMPTY|The query ID is empty|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v103/methods/messages_sendMedia.md b/old_docs/API_docs_v103/methods/messages_sendMedia.md
index 44c604c6..a2244583 100644
--- a/old_docs/API_docs_v103/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v103/methods/messages_sendMedia.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v103/methods/messages_sendMessage.md b/old_docs/API_docs_v103/methods/messages_sendMessage.md
index 5641ebc3..e0ab305d 100644
--- a/old_docs/API_docs_v103/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v103/methods/messages_sendMessage.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v103/methods/messages_sendMultiMedia.md b/old_docs/API_docs_v103/methods/messages_sendMultiMedia.md
index 9ebdcb88..5684a6d2 100644
--- a/old_docs/API_docs_v103/methods/messages_sendMultiMedia.md
+++ b/old_docs/API_docs_v103/methods/messages_sendMultiMedia.md
@@ -47,11 +47,11 @@ Or, if you're into Lua:
Updates = messages.sendMultiMedia({silent=Bool, background=Bool, clear_draft=Bool, peer=InputPeer, reply_to_msg_id=int, multi_media={InputSingleMedia}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_sendScreenshotNotification.md b/old_docs/API_docs_v103/methods/messages_sendScreenshotNotification.md
index 3f5bb36d..4e4e40f5 100644
--- a/old_docs/API_docs_v103/methods/messages_sendScreenshotNotification.md
+++ b/old_docs/API_docs_v103/methods/messages_sendScreenshotNotification.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = messages.sendScreenshotNotification({peer=InputPeer, reply_to_msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_setBotCallbackAnswer.md b/old_docs/API_docs_v103/methods/messages_setBotCallbackAnswer.md
index ed058b4f..630ca61c 100644
--- a/old_docs/API_docs_v103/methods/messages_setBotCallbackAnswer.md
+++ b/old_docs/API_docs_v103/methods/messages_setBotCallbackAnswer.md
@@ -52,11 +52,11 @@ Bool = messages.setBotCallbackAnswer({alert=Bool, query_id=long, message='string
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|URL_INVALID|Invalid URL provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|URL_INVALID|Invalid URL provided|
diff --git a/old_docs/API_docs_v103/methods/messages_setBotPrecheckoutResults.md b/old_docs/API_docs_v103/methods/messages_setBotPrecheckoutResults.md
index cc615123..d6e0e61b 100644
--- a/old_docs/API_docs_v103/methods/messages_setBotPrecheckoutResults.md
+++ b/old_docs/API_docs_v103/methods/messages_setBotPrecheckoutResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotPrecheckoutResults({success=Bool, query_id=long, error='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ERROR_TEXT_EMPTY|The provided error message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ERROR_TEXT_EMPTY|The provided error message is empty|
diff --git a/old_docs/API_docs_v103/methods/messages_setBotShippingResults.md b/old_docs/API_docs_v103/methods/messages_setBotShippingResults.md
index f3a86f4f..adc4f64f 100644
--- a/old_docs/API_docs_v103/methods/messages_setBotShippingResults.md
+++ b/old_docs/API_docs_v103/methods/messages_setBotShippingResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotShippingResults({query_id=long, error='string', shipping_options={ShippingOption}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v103/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v103/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v103/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_setGameScore.md b/old_docs/API_docs_v103/methods/messages_setGameScore.md
index 548ee889..429b04c6 100644
--- a/old_docs/API_docs_v103/methods/messages_setGameScore.md
+++ b/old_docs/API_docs_v103/methods/messages_setGameScore.md
@@ -47,12 +47,12 @@ Or, if you're into Lua:
Updates = messages.setGameScore({edit_message=Bool, force=Bool, peer=InputPeer, id=int, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v103/methods/messages_setInlineBotResults.md b/old_docs/API_docs_v103/methods/messages_setInlineBotResults.md
index ab388e39..df4c30d4 100644
--- a/old_docs/API_docs_v103/methods/messages_setInlineBotResults.md
+++ b/old_docs/API_docs_v103/methods/messages_setInlineBotResults.md
@@ -48,23 +48,23 @@ Or, if you're into Lua:
Bool = messages.setInlineBotResults({gallery=Bool, private=Bool, query_id=long, results={InputBotInlineResult}, cache_time=int, next_offset='string', switch_pm=InlineBotSwitchPM, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ARTICLE_TITLE_EMPTY|The title of the article is empty|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|PHOTO_INVALID|Photo invalid|
-|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
-|QUERY_ID_INVALID|The query ID is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|RESULT_TYPE_INVALID|Result type invalid|
-|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
-|START_PARAM_INVALID|Start parameter invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ARTICLE_TITLE_EMPTY|The title of the article is empty|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|PHOTO_INVALID|Photo invalid|
+|400|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|RESULT_TYPE_INVALID|Result type invalid|
+|400|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
+|400|START_PARAM_INVALID|Start parameter invalid|
+|403|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v103/methods/messages_setInlineGameScore.md b/old_docs/API_docs_v103/methods/messages_setInlineGameScore.md
index 5eeb1540..62b163d5 100644
--- a/old_docs/API_docs_v103/methods/messages_setInlineGameScore.md
+++ b/old_docs/API_docs_v103/methods/messages_setInlineGameScore.md
@@ -46,11 +46,11 @@ Or, if you're into Lua:
Bool = messages.setInlineGameScore({edit_message=Bool, force=Bool, id=InputBotInlineMessageID, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v103/methods/messages_setTyping.md b/old_docs/API_docs_v103/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v103/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v103/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v103/methods/messages_startBot.md b/old_docs/API_docs_v103/methods/messages_startBot.md
index aa2b2d00..4bf12aa6 100644
--- a/old_docs/API_docs_v103/methods/messages_startBot.md
+++ b/old_docs/API_docs_v103/methods/messages_startBot.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = messages.startBot({bot=InputUser, peer=InputPeer, start_param='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INVALID|This is not a valid bot|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|START_PARAM_EMPTY|The start parameter is empty|
-|START_PARAM_INVALID|Start parameter invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INVALID|This is not a valid bot|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|START_PARAM_EMPTY|The start parameter is empty|
+|400|START_PARAM_INVALID|Start parameter invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_toggleDialogPin.md b/old_docs/API_docs_v103/methods/messages_toggleDialogPin.md
index 22c6d15d..ff46ef21 100644
--- a/old_docs/API_docs_v103/methods/messages_toggleDialogPin.md
+++ b/old_docs/API_docs_v103/methods/messages_toggleDialogPin.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.toggleDialogPin({pinned=Bool, peer=InputDialogPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_uninstallStickerSet.md b/old_docs/API_docs_v103/methods/messages_uninstallStickerSet.md
index 59abc510..6b7a2006 100644
--- a/old_docs/API_docs_v103/methods/messages_uninstallStickerSet.md
+++ b/old_docs/API_docs_v103/methods/messages_uninstallStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.uninstallStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v103/methods/messages_uploadMedia.md b/old_docs/API_docs_v103/methods/messages_uploadMedia.md
index afc806fe..09fc074c 100644
--- a/old_docs/API_docs_v103/methods/messages_uploadMedia.md
+++ b/old_docs/API_docs_v103/methods/messages_uploadMedia.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
MessageMedia = messages.uploadMedia({peer=InputPeer, media=InputMedia, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v103/methods/payments_getPaymentForm.md b/old_docs/API_docs_v103/methods/payments_getPaymentForm.md
index e8e04f37..4c28121f 100644
--- a/old_docs/API_docs_v103/methods/payments_getPaymentForm.md
+++ b/old_docs/API_docs_v103/methods/payments_getPaymentForm.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentForm = payments.getPaymentForm({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v103/methods/payments_getPaymentReceipt.md b/old_docs/API_docs_v103/methods/payments_getPaymentReceipt.md
index acb1c209..0e2f76a8 100644
--- a/old_docs/API_docs_v103/methods/payments_getPaymentReceipt.md
+++ b/old_docs/API_docs_v103/methods/payments_getPaymentReceipt.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentReceipt = payments.getPaymentReceipt({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v103/methods/payments_sendPaymentForm.md b/old_docs/API_docs_v103/methods/payments_sendPaymentForm.md
index b8fa905d..1910ede8 100644
--- a/old_docs/API_docs_v103/methods/payments_sendPaymentForm.md
+++ b/old_docs/API_docs_v103/methods/payments_sendPaymentForm.md
@@ -45,10 +45,10 @@ Or, if you're into Lua:
payments_PaymentResult = payments.sendPaymentForm({msg_id=int, requested_info_id='string', shipping_option_id='string', credentials=InputPaymentCredentials, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v103/methods/payments_validateRequestedInfo.md b/old_docs/API_docs_v103/methods/payments_validateRequestedInfo.md
index 3b9da7e6..f18e1660 100644
--- a/old_docs/API_docs_v103/methods/payments_validateRequestedInfo.md
+++ b/old_docs/API_docs_v103/methods/payments_validateRequestedInfo.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
payments_ValidatedRequestedInfo = payments.validateRequestedInfo({save=Bool, msg_id=int, info=PaymentRequestedInfo, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v103/methods/phone_acceptCall.md b/old_docs/API_docs_v103/methods/phone_acceptCall.md
index b75ac65b..f5c58f01 100644
--- a/old_docs/API_docs_v103/methods/phone_acceptCall.md
+++ b/old_docs/API_docs_v103/methods/phone_acceptCall.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->acceptCall(['peer' => InputPhoneCall, 'g_b' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.acceptCall({peer=InputPhoneCall, g_b='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
diff --git a/old_docs/API_docs_v103/methods/phone_confirmCall.md b/old_docs/API_docs_v103/methods/phone_confirmCall.md
index 1a75563d..468307cc 100644
--- a/old_docs/API_docs_v103/methods/phone_confirmCall.md
+++ b/old_docs/API_docs_v103/methods/phone_confirmCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->confirmCall(['peer' => InputPhoneCall, 'g_a' => 'bytes', 'key_fingerprint' => long, 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.confirmCall({peer=InputPhoneCall, g_a='bytes', key_fingerprint=long, protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v103/methods/phone_discardCall.md b/old_docs/API_docs_v103/methods/phone_discardCall.md
index e50456eb..b4fec97a 100644
--- a/old_docs/API_docs_v103/methods/phone_discardCall.md
+++ b/old_docs/API_docs_v103/methods/phone_discardCall.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|video|[Bool](../types/Bool.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Optional|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|duration|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|reason|[PhoneCallDiscardReason](../types/PhoneCallDiscardReason.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|connection\_id|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [Updates](../types/Updates.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Updates = $MadelineProto->phone->discardCall(['video' => Bool, 'peer' => InputPhoneCall, 'duration' => int, 'reason' => PhoneCallDiscardReason, 'connection_id' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Updates = phone.discardCall({video=Bool, peer=InputPhoneCall, duration=int, reason=PhoneCallDiscardReason, connection_id=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v103/methods/phone_receivedCall.md b/old_docs/API_docs_v103/methods/phone_receivedCall.md
index c43bc8ac..6091424b 100644
--- a/old_docs/API_docs_v103/methods/phone_receivedCall.md
+++ b/old_docs/API_docs_v103/methods/phone_receivedCall.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Bool = phone.receivedCall({peer=InputPhoneCall, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_ALREADY_DECLINED|The call was already declined|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v103/methods/phone_requestCall.md b/old_docs/API_docs_v103/methods/phone_requestCall.md
index 9b8df564..e3894214 100644
--- a/old_docs/API_docs_v103/methods/phone_requestCall.md
+++ b/old_docs/API_docs_v103/methods/phone_requestCall.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|video|[Bool](../types/Bool.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Optional|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Optional|
+|g\_a\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->requestCall(['video' => Bool, 'user_id' => InputUser, 'g_a_hash' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.requestCall({video=Bool, user_id=InputUser, g_a_hash='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
+|400|PARTICIPANT_VERSION_OUTDATED|The other participant does not use an up to date telegram client with support for calls|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|403|USER_IS_BLOCKED|You were blocked by this user|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v103/methods/phone_saveCallDebug.md b/old_docs/API_docs_v103/methods/phone_saveCallDebug.md
index 8acbc353..1e793c05 100644
--- a/old_docs/API_docs_v103/methods/phone_saveCallDebug.md
+++ b/old_docs/API_docs_v103/methods/phone_saveCallDebug.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = phone.saveCallDebug({peer=InputPhoneCall, debug=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
-|DATA_JSON_INVALID|The provided JSON data is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|DATA_JSON_INVALID|The provided JSON data is invalid|
diff --git a/old_docs/API_docs_v103/methods/phone_setCallRating.md b/old_docs/API_docs_v103/methods/phone_setCallRating.md
index 5977c943..df40c478 100644
--- a/old_docs/API_docs_v103/methods/phone_setCallRating.md
+++ b/old_docs/API_docs_v103/methods/phone_setCallRating.md
@@ -45,10 +45,10 @@ Or, if you're into Lua:
Updates = phone.setCallRating({user_initiative=Bool, peer=InputPhoneCall, rating=int, comment='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v103/methods/photos_getUserPhotos.md b/old_docs/API_docs_v103/methods/photos_getUserPhotos.md
index 57f5772b..a01f3180 100644
--- a/old_docs/API_docs_v103/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v103/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v103/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v103/methods/photos_updateProfilePhoto.md
index cca2fe30..f7c91ec6 100644
--- a/old_docs/API_docs_v103/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v103/methods/photos_updateProfilePhoto.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v103/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v103/methods/photos_uploadProfilePhoto.md
index 457bade8..badde2de 100644
--- a/old_docs/API_docs_v103/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v103/methods/photos_uploadProfilePhoto.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v103/methods/stickers_addStickerToSet.md b/old_docs/API_docs_v103/methods/stickers_addStickerToSet.md
index 78e8437c..b1fa2aad 100644
--- a/old_docs/API_docs_v103/methods/stickers_addStickerToSet.md
+++ b/old_docs/API_docs_v103/methods/stickers_addStickerToSet.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.addStickerToSet({stickerset=InputStickerSet, sticker=InputStickerSetItem, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v103/methods/stickers_changeStickerPosition.md b/old_docs/API_docs_v103/methods/stickers_changeStickerPosition.md
index cddc1cbb..98dde67e 100644
--- a/old_docs/API_docs_v103/methods/stickers_changeStickerPosition.md
+++ b/old_docs/API_docs_v103/methods/stickers_changeStickerPosition.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.changeStickerPosition({sticker=InputDocument, position=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/old_docs/API_docs_v103/methods/stickers_createStickerSet.md b/old_docs/API_docs_v103/methods/stickers_createStickerSet.md
index 41e4ad11..741e0ad6 100644
--- a/old_docs/API_docs_v103/methods/stickers_createStickerSet.md
+++ b/old_docs/API_docs_v103/methods/stickers_createStickerSet.md
@@ -46,18 +46,18 @@ Or, if you're into Lua:
messages_StickerSet = stickers.createStickerSet({masks=Bool, user_id=InputUser, title='string', short_name='string', stickers={InputStickerSetItem}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|PACK_SHORT_NAME_INVALID|Short pack name invalid|
-|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|STICKER_EMOJI_INVALID|Sticker emoji invalid|
-|STICKER_FILE_INVALID|Sticker file invalid|
-|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
-|STICKERS_EMPTY|No sticker provided|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|PACK_SHORT_NAME_INVALID|Short pack name invalid|
+|400|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|STICKER_EMOJI_INVALID|Sticker emoji invalid|
+|400|STICKER_FILE_INVALID|Sticker file invalid|
+|400|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
+|400|STICKERS_EMPTY|No sticker provided|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v103/methods/stickers_removeStickerFromSet.md b/old_docs/API_docs_v103/methods/stickers_removeStickerFromSet.md
index ea4621f2..d1fc4339 100644
--- a/old_docs/API_docs_v103/methods/stickers_removeStickerFromSet.md
+++ b/old_docs/API_docs_v103/methods/stickers_removeStickerFromSet.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.removeStickerFromSet({sticker=InputDocument, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/old_docs/API_docs_v103/methods/updates_getChannelDifference.md b/old_docs/API_docs_v103/methods/updates_getChannelDifference.md
index 6fa79529..9735c14a 100644
--- a/old_docs/API_docs_v103/methods/updates_getChannelDifference.md
+++ b/old_docs/API_docs_v103/methods/updates_getChannelDifference.md
@@ -7,8 +7,56 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|force|[Bool](../types/Bool.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|filter|[ChannelMessagesFilter](../types/ChannelMessagesFilter.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_ChannelDifference](../types/updates_ChannelDifference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_ChannelDifference = $MadelineProto->updates->getChannelDifference(['force' => Bool, 'channel' => InputChannel, 'filter' => ChannelMessagesFilter, 'pts' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_ChannelDifference = updates.getChannelDifference({force=Bool, channel=InputChannel, filter=ChannelMessagesFilter, pts=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|400|RANGES_INVALID|Invalid range provided|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v103/methods/updates_getDifference.md b/old_docs/API_docs_v103/methods/updates_getDifference.md
index 33e7d7f2..bcfac4e2 100644
--- a/old_docs/API_docs_v103/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v103/methods/updates_getDifference.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|pts\_total\_limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'pts_total_limit' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, pts_total_limit=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v103/methods/updates_getState.md b/old_docs/API_docs_v103/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v103/methods/updates_getState.md
+++ b/old_docs/API_docs_v103/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v103/methods/upload_getCdnFile.md b/old_docs/API_docs_v103/methods/upload_getCdnFile.md
index 5e5b3f43..be9ad311 100644
--- a/old_docs/API_docs_v103/methods/upload_getCdnFile.md
+++ b/old_docs/API_docs_v103/methods/upload_getCdnFile.md
@@ -7,8 +7,40 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_CdnFile](../types/upload_CdnFile.md)
+
+### Can bots use this method: **NO**
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_CdnFile = $MadelineProto->upload->getCdnFile(['file_token' => 'bytes', 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_CdnFile = upload.getCdnFile({file_token='bytes', offset=int, limit=int, })
+```
+
diff --git a/old_docs/API_docs_v103/methods/upload_getCdnFileHashes.md b/old_docs/API_docs_v103/methods/upload_getCdnFileHashes.md
index ea6a8e75..d957578e 100644
--- a/old_docs/API_docs_v103/methods/upload_getCdnFileHashes.md
+++ b/old_docs/API_docs_v103/methods/upload_getCdnFileHashes.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->getCdnFileHashes(['file_token' => 'bytes', 'offset' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.getCdnFileHashes({file_token='bytes', offset=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/old_docs/API_docs_v103/methods/upload_getFile.md b/old_docs/API_docs_v103/methods/upload_getFile.md
index c72e6090..d8b433d6 100644
--- a/old_docs/API_docs_v103/methods/upload_getFile.md
+++ b/old_docs/API_docs_v103/methods/upload_getFile.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v103/methods/upload_getFileHashes.md b/old_docs/API_docs_v103/methods/upload_getFileHashes.md
index debeb60d..e03dd5c5 100644
--- a/old_docs/API_docs_v103/methods/upload_getFileHashes.md
+++ b/old_docs/API_docs_v103/methods/upload_getFileHashes.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+Get file hashes
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | The file | Yes|
+|offset|[int](../types/int.md) | Offset | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->getFileHashes(['location' => InputFileLocation, 'offset' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.getFileHashes({location=InputFileLocation, offset=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LOCATION_INVALID|The provided location is invalid|
diff --git a/old_docs/API_docs_v103/methods/upload_getWebFile.md b/old_docs/API_docs_v103/methods/upload_getWebFile.md
index 21179a66..7b63f96c 100644
--- a/old_docs/API_docs_v103/methods/upload_getWebFile.md
+++ b/old_docs/API_docs_v103/methods/upload_getWebFile.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
upload_WebFile = upload.getWebFile({location=InputWebFileLocation, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LOCATION_INVALID|The provided location is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LOCATION_INVALID|The provided location is invalid|
diff --git a/old_docs/API_docs_v103/methods/upload_reuploadCdnFile.md b/old_docs/API_docs_v103/methods/upload_reuploadCdnFile.md
index cc20d5e3..f531557c 100644
--- a/old_docs/API_docs_v103/methods/upload_reuploadCdnFile.md
+++ b/old_docs/API_docs_v103/methods/upload_reuploadCdnFile.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|request\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->reuploadCdnFile(['file_token' => 'bytes', 'request_token' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.reuploadCdnFile({file_token='bytes', request_token='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/old_docs/API_docs_v103/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v103/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v103/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v103/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v103/methods/upload_saveFilePart.md b/old_docs/API_docs_v103/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v103/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v103/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v103/methods/users_getFullUser.md b/old_docs/API_docs_v103/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v103/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v103/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v103/methods/users_getUsers.md b/old_docs/API_docs_v103/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v103/methods/users_getUsers.md
+++ b/old_docs/API_docs_v103/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v103/methods/users_setSecureValueErrors.md b/old_docs/API_docs_v103/methods/users_setSecureValueErrors.md
index 40e398ab..661137fb 100644
--- a/old_docs/API_docs_v103/methods/users_setSecureValueErrors.md
+++ b/old_docs/API_docs_v103/methods/users_setSecureValueErrors.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = users.setSecureValueErrors({id=InputUser, errors={SecureValueError}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v104/methods/README.md b/old_docs/API_docs_v104/methods/README.md
index 0e352946..a161eab6 100644
--- a/old_docs/API_docs_v104/methods/README.md
+++ b/old_docs/API_docs_v104/methods/README.md
@@ -30,549 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Accept URL authorization: messages.acceptUrlAuth
-
-* Accept contact: contacts.acceptContact
-
-* Accept telegram passport authorization: account.acceptAuthorization
-
-* Accept telegram's TOS: help.acceptTermsOfService
-
-* Add a sticker set: messages.installStickerSet
-
-* Add a sticker to favorites: messages.faveSticker
-
-* Add a sticker to recent stickers: messages.saveRecentSticker
-
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add contact: contacts.addContact
-
-* Add phone number as contact: contacts.importContacts
-
-* Add sticker to stickerset: stickers.addStickerToSet
-
-* Add users to channel/supergroup: channels.inviteToChannel
-
-* Block a user: contacts.block
-
-* Bots only: get telegram passport authorization form: account.getAuthorizationForm
-
-* Bots only: send payment form: payments.sendPaymentForm
-
-* Bots only: set precheckout results: messages.setBotPrecheckoutResults
-
-* Bots only: set shipping results: messages.setBotShippingResults
-
-* Bots only: set the callback answer (after a button was clicked): messages.setBotCallbackAnswer
-
-* Bots only: set the results of an inline query: messages.setInlineBotResults
-
-* Call inline bot: messages.getInlineBotResults
-
-* Cancel password recovery email: account.cancelPasswordEmail
-
-* Change notification settings: account.updateNotifySettings
-
-* Change sticker position in photo: stickers.changeStickerPosition
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if about to edit a message or a media caption: messages.getMessageEditData
-
-* Check if an invitation link is valid: messages.checkChatInvite
-
-* Check if this username is available: account.checkUsername
-
-* Check if this username is free and can be assigned to a channel/supergroup: channels.checkUsername
-
-* Clear all drafts: messages.clearAllDrafts
-
-* Clear all recent stickers: messages.clearRecentStickers
-
-* Clear saved payments info: payments.clearSavedInfo
-
-* Confirm password recovery using email: account.confirmPasswordEmail
-
-* Confirm this phone number is associated to this account, obtain phone_code_hash from sendConfirmPhoneCode: account.confirmPhone
-
-* Contact signup notification setting value: account.getContactSignUpNotification
-
-* Convert chat to supergroup: messages.migrateChat
-
-* Create a chat (not supergroup): messages.createChat
-
-* Create channel/supergroup: channels.createChannel
-
-* Create stickerset: stickers.createStickerSet
-
-* Delete a certain session: account.resetAuthorization
-
-* Delete a certain telegram web login authorization: account.resetWebAuthorization
-
-* Delete a channel/supergroup: channels.deleteChannel
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete all messages of a user in a channel/supergroup: channels.deleteUserHistory
-
-* Delete all temporary authorization keys except the ones provided: auth.dropTempAuthKeys
-
-* Delete channel/supergroup messages: channels.deleteMessages
-
-* Delete chat history: messages.deleteHistory
-
-* Delete contacts by phones: contacts.deleteByPhones
-
-* Delete folder: folders.deleteFolder
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete secure telegram passport value: account.deleteSecureValue
-
-* Delete the history of a supergroup/channel: channels.deleteHistory
-
-* Delete this account: account.deleteAccount
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Download a file through telegram: upload.getWebFile
-
-* Edit a message: messages.editMessage
-
-* Edit a sent inline message: messages.editInlineBotMessage
-
-* Edit admin permissions of a user in a channel/supergroup: channels.editAdmin
-
-* Edit admin permissions: messages.editChatAdmin
-
-* Edit chat info: messages.editChatAbout
-
-* Edit creator of channel: channels.editCreator
-
-* Edit default rights of chat: messages.editChatDefaultBannedRights
-
-* Edit folder: folders.editPeerFolders
-
-* Edit location (geochats): channels.editLocation
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the photo of a supergroup/channel: channels.editPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Edit the title of a supergroup/channel: channels.editTitle
-
-* Edit user info: help.editUserInfo
-
-* Enable or disable hidden history for new channel/supergroup users: channels.togglePreHistoryHidden
-
-* Export chat invite : messages.exportChatInvite
-
-* Find a sticker set: messages.searchStickerSets
-
-* Finish account exporting session: account.finishTakeoutSession
-
-* Forward messages: messages.forwardMessages
-
-* Get CDN configuration: help.getCdnConfig
-
-* Get a stickerset: messages.getStickerSet
-
-* Get account TTL: account.getAccountTTL
-
-* Get admin log of a channel/supergroup: channels.getAdminLog
-
-* Get all archived stickers: messages.getArchivedStickers
-
-* Get all channels you left: channels.getLeftChannels
-
-* Get all chats (not supergroups or channels): messages.getAllChats
-
-* Get all contacts: contacts.getContacts
-
-* Get all logged-in authorizations: account.getAuthorizations
-
-* Get all message drafts: messages.getAllDrafts
-
-* Get all secure telegram passport values: account.getAllSecureValues
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get all supergroups/channels where you're admin: channels.getAdminedPublicChannels
-
-* Get and increase message views: messages.getMessagesViews
-
-* Get app config: help.getAppConfig
-
-* Get autodownload settings: account.getAutoDownloadSettings
-
-* Get available languages: langpack.getLanguages
-
-* Get blocked users: contacts.getBlocked
-
-* Get call configuration: phone.getCallConfig
-
-* Get channel/supergroup messages: channels.getMessages
-
-* Get channel/supergroup participants (you should use `$MadelineProto->get_pwr_chat($id)` instead): channels.getParticipants
-
-* Get chats in common with a user: messages.getCommonChats
-
-* Get contacts by IDs: contacts.getContactIDs
-
-* Get deep link info: help.getDeepLinkInfo
-
-* Get dialog info of peers: messages.getPeerDialogs
-
-* Get dialogs marked as unread manually: messages.getDialogUnreadMarks
-
-* Get document by SHA256 hash: messages.getDocumentByHash
-
-* Get emoji URL: messages.getEmojiURL
-
-* Get emoji keyword difference: messages.getEmojiKeywordsDifference
-
-* Get emoji keyword languages: messages.getEmojiKeywordsLanguages
-
-* Get emoji keywords: messages.getEmojiKeywords
-
-* Get favorite stickers: messages.getFavedStickers
-
-* Get featured stickers: messages.getFeaturedStickers
-
-* Get groups for discussion: channels.getGroupsForDiscussion
-
-* Get high scores of a game sent in an inline message: messages.getInlineGameHighScores
-
-* Get high scores of a game: messages.getGameHighScores
-
-* Get info about a certain channel/supergroup participant: channels.getParticipant
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about multiple channels/supergroups: channels.getChannels
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get information about the current proxy: help.getProxyData
-
-* Get invitation text: help.getInviteText
-
-* Get language pack strings: langpack.getStrings
-
-* Get language pack updates: langpack.getDifference
-
-* Get language pack: langpack.getLangPack
-
-* Get language: langpack.getLanguage
-
-* Get masks: messages.getMaskStickers
-
-* Get message ranges to fetch: messages.getSplitRanges
-
-* Get messages: messages.getMessages
-
-* Get most used chats: contacts.getTopPeers
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification exceptions: account.getNotifyExceptions
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get online users: messages.getOnlines
-
-* Get passport config: help.getPassportConfig
-
-* Get payment form: payments.getPaymentForm
-
-* Get payment receipt: payments.getPaymentReceipt
-
-* Get people nearby (geochats): contacts.getLocated
-
-* Get pinned dialogs: messages.getPinnedDialogs
-
-* Get poll results: messages.getPollResults
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get recent locations: messages.getRecentLocations
-
-* Get recent stickers: messages.getRecentStickers
-
-* Get recent t.me URLs: help.getRecentMeUrls
-
-* Get saved contacts: contacts.getSaved
-
-* Get saved gifs: messages.getSavedGifs
-
-* Get saved payments info: payments.getSavedInfo
-
-* Get search counter: messages.getSearchCounters
-
-* Get secure value for telegram passport: account.getSecureValue
-
-* Get server configuration: help.getConfig
-
-* Get stats URL: messages.getStatsURL
-
-* Get stickers attachable to images: messages.getAttachedStickers
-
-* Get stickers: messages.getStickers
-
-* Get support name: help.getSupportName
-
-* Get telegram web login authorizations: account.getWebAuthorizations
-
-* Get temporary password for buying products through bots: account.getTmpPassword
-
-* Get the callback answer of a bot (after clicking a button): messages.getBotCallbackAnswer
-
-* Get the changelog of this app: help.getAppChangelog
-
-* Get the current password: account.getPassword
-
-* Get the link of a message in a channel: channels.exportMessageLink
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Get the settings of apeer: messages.getPeerSettings
-
-* Get unread mentions: messages.getUnreadMentions
-
-* Get updated TOS: help.getTermsOfServiceUpdate
-
-* Get user info: help.getUserInfo
-
-* Get wallpaper info: account.getWallPaper
-
-* Get webpage preview: messages.getWebPage
-
-* Get webpage preview: messages.getWebPagePreview
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Global message search: messages.searchGlobal
-
-* Hide peer settings bar: messages.hidePeerSettingsBar
-
-* Import chat invite: messages.importChatInvite
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Install wallpaper: account.installWallPaper
-
-* Invalidate sent phone code: auth.cancelCode
-
-* Invoke method from takeout session: invokeWithTakeout
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invoke with messages range: invokeWithMessagesRange
-
-* Invoke with method without returning updates in the socket: invokeWithoutUpdates
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Join a channel/supergroup: channels.joinChannel
-
-* Kick or ban a user from a channel/supergroup: channels.editBanned
-
-* Leave a channel/supergroup: channels.leaveChannel
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark channel/supergroup history as read: channels.readHistory
-
-* Mark channel/supergroup messages as read: channels.readMessageContents
-
-* Mark dialog as unread : messages.markDialogUnread
-
-* Mark mentions as read: messages.readMentions
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Mark new featured stickers as read: messages.readFeaturedStickers
-
-* Notify server that you received a call (server will refuse all incoming calls until the current call is over): phone.receivedCall
-
-* Pin or unpin dialog: messages.toggleDialogPin
-
-* Register device for push notifications: account.registerDevice
-
-* Remove a sticker set: messages.uninstallStickerSet
-
-* Remove sticker from stickerset: stickers.removeStickerFromSet
-
-* Reorder pinned dialogs: messages.reorderPinnedDialogs
-
-* Reorder sticker sets: messages.reorderStickerSets
-
-* Report a message in a supergroup/channel for spam: channels.reportSpam
-
-* Report a message: messages.report
-
-* Report a peer for spam: messages.reportSpam
-
-* Report for spam a secret chat: messages.reportEncryptedSpam
-
-* Report for spam: account.reportPeer
-
-* Request URL authorization: messages.requestUrlAuth
-
-* Resend password recovery email: account.resendPasswordEmail
-
-* Resend the SMS verification code: auth.resendCode
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Reset all telegram web login authorizations: account.resetWebAuthorizations
-
-* Reset saved contacts: contacts.resetSaved
-
-* Reset top peer rating for a certain category/peer: contacts.resetTopPeerRating
-
-* Reset wallpapers: account.resetWallPapers
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Save a GIF: messages.saveGif
-
-* Save a message draft: messages.saveDraft
-
-* Save autodownload settings: account.saveAutoDownloadSettings
-
-* Save call debugging info: phone.saveCallDebug
-
-* Save telegram passport secure value: account.saveSecureValue
-
-* Save wallpaper: account.saveWallPaper
-
-* Search contacts: contacts.search
-
-* Search gifs: messages.searchGifs
-
-* Search peers or messages: messages.search
-
-* Send a custom request to the bot API: bots.sendCustomRequest
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send an album: messages.sendMultiMedia
-
-* Send an email to recover the 2FA password: auth.requestPasswordRecovery
-
-* Send confirmation phone code: account.sendConfirmPhoneCode
-
-* Send email verification code: account.sendVerifyEmailCode
-
-* Send inline bot result obtained with messages.getInlineBotResults to the chat: messages.sendInlineBotResult
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send phone verification code: account.sendVerifyPhoneCode
-
-* Send screenshot notification: messages.sendScreenshotNotification
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Send vote: messages.sendVote
-
-* Send webhook request via bot API: bots.answerWebhookJSONQuery
-
-* Set account TTL: account.setAccountTTL
-
-* Set contact sign up notification: account.setContactSignUpNotification
-
-* Set discussion group of channel: channels.setDiscussionGroup
-
-* Set phone call rating: phone.setCallRating
-
-* Set privacy settings: account.setPrivacy
-
-* Set secure value error for telegram passport: users.setSecureValueErrors
-
-* Set the game score of an inline message: messages.setInlineGameScore
-
-* Set the game score: messages.setGameScore
-
-* Set the supergroup/channel stickerpack: channels.setStickers
-
-* Set the update status of webhook: help.setBotUpdatesStatus
-
-* Start a bot: messages.startBot
-
-* Start account exporting session: account.initTakeoutSession
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Toggle channel signatures: channels.toggleSignatures
-
-* Toggle slow mode: channels.toggleSlowMode
-
-* Toggle top peers: contacts.toggleTopPeers
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update pinned message: messages.updatePinnedMessage
-
-* Update profile info: account.updateProfile
-
-* Update the username of a supergroup/channel: channels.updateUsername
-
-* Update this user's username: account.updateUsername
-
-* Upload a file without sending it to anyone: messages.uploadMedia
-
-* Upload a secret chat file without sending it to anyone: messages.uploadEncryptedFile
-
-* Upload profile photo: photos.uploadProfilePhoto
-
-* Upload wallpaper: account.uploadWallPaper
-
-* Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
-
-* Validate requested payment info: payments.validateRequestedInfo
-
-* Verify email address: account.verifyEmail
-
-* Verify phone number: account.verifyPhone
-
diff --git a/old_docs/API_docs_v104/methods/account_changePhone.md b/old_docs/API_docs_v104/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/old_docs/API_docs_v104/methods/account_changePhone.md
+++ b/old_docs/API_docs_v104/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v104/methods/account_checkUsername.md b/old_docs/API_docs_v104/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v104/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v104/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v104/methods/account_confirmPhone.md b/old_docs/API_docs_v104/methods/account_confirmPhone.md
index b730c2dc..c114cd20 100644
--- a/old_docs/API_docs_v104/methods/account_confirmPhone.md
+++ b/old_docs/API_docs_v104/methods/account_confirmPhone.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = account.confirmPhone({phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_HASH_INVALID|Code hash invalid|
-|PHONE_CODE_EMPTY|phone_code is missing|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_HASH_INVALID|Code hash invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
diff --git a/old_docs/API_docs_v104/methods/account_getNotifySettings.md b/old_docs/API_docs_v104/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v104/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v104/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v104/methods/account_getPasswordSettings.md b/old_docs/API_docs_v104/methods/account_getPasswordSettings.md
index 8ebb78ee..e41c6b67 100644
--- a/old_docs/API_docs_v104/methods/account_getPasswordSettings.md
+++ b/old_docs/API_docs_v104/methods/account_getPasswordSettings.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+Get the current 2FA settings
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password|[InputCheckPasswordSRP](../types/InputCheckPasswordSRP.md) | You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [account\_PasswordSettings](../types/account_PasswordSettings.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$account_PasswordSettings = $MadelineProto->account->getPasswordSettings(['password' => InputCheckPasswordSRP, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+account_PasswordSettings = account.getPasswordSettings({password=InputCheckPasswordSRP, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v104/methods/account_getPrivacy.md b/old_docs/API_docs_v104/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/old_docs/API_docs_v104/methods/account_getPrivacy.md
+++ b/old_docs/API_docs_v104/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v104/methods/account_getTmpPassword.md b/old_docs/API_docs_v104/methods/account_getTmpPassword.md
index 3a29d97a..0ae4061f 100644
--- a/old_docs/API_docs_v104/methods/account_getTmpPassword.md
+++ b/old_docs/API_docs_v104/methods/account_getTmpPassword.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
account_TmpPassword = account.getTmpPassword({password=InputCheckPasswordSRP, period=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_HASH_INVALID|The provided password hash is invalid|
-|TMP_PASSWORD_DISABLED|The temporary password is disabled|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
+|400|TMP_PASSWORD_DISABLED|The temporary password is disabled|
diff --git a/old_docs/API_docs_v104/methods/account_registerDevice.md b/old_docs/API_docs_v104/methods/account_registerDevice.md
index 7e39dee0..549f1272 100644
--- a/old_docs/API_docs_v104/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v104/methods/account_registerDevice.md
@@ -47,10 +47,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({no_muted=Bool, token_type=int, token='string', app_sandbox=Bool, secret='bytes', other_uids={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v104/methods/account_reportPeer.md b/old_docs/API_docs_v104/methods/account_reportPeer.md
index a203c900..87b080eb 100644
--- a/old_docs/API_docs_v104/methods/account_reportPeer.md
+++ b/old_docs/API_docs_v104/methods/account_reportPeer.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.reportPeer({peer=InputPeer, reason=ReportReason, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v104/methods/account_resetAuthorization.md b/old_docs/API_docs_v104/methods/account_resetAuthorization.md
index c950992c..e8e8ecc4 100644
--- a/old_docs/API_docs_v104/methods/account_resetAuthorization.md
+++ b/old_docs/API_docs_v104/methods/account_resetAuthorization.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.resetAuthorization({hash=long, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v104/methods/account_sendChangePhoneCode.md b/old_docs/API_docs_v104/methods/account_sendChangePhoneCode.md
index 3a0923f8..26375a94 100644
--- a/old_docs/API_docs_v104/methods/account_sendChangePhoneCode.md
+++ b/old_docs/API_docs_v104/methods/account_sendChangePhoneCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendChangePhoneCode({phone_number='string', settings=CodeSettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v104/methods/account_sendConfirmPhoneCode.md b/old_docs/API_docs_v104/methods/account_sendConfirmPhoneCode.md
index 02896f84..426b70b8 100644
--- a/old_docs/API_docs_v104/methods/account_sendConfirmPhoneCode.md
+++ b/old_docs/API_docs_v104/methods/account_sendConfirmPhoneCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendConfirmPhoneCode({hash='string', settings=CodeSettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v104/methods/account_setAccountTTL.md b/old_docs/API_docs_v104/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/old_docs/API_docs_v104/methods/account_setAccountTTL.md
+++ b/old_docs/API_docs_v104/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/old_docs/API_docs_v104/methods/account_setPrivacy.md b/old_docs/API_docs_v104/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/old_docs/API_docs_v104/methods/account_setPrivacy.md
+++ b/old_docs/API_docs_v104/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v104/methods/account_unregisterDevice.md b/old_docs/API_docs_v104/methods/account_unregisterDevice.md
index 13d11e88..e39f0811 100644
--- a/old_docs/API_docs_v104/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v104/methods/account_unregisterDevice.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', other_uids={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v104/methods/account_updateNotifySettings.md b/old_docs/API_docs_v104/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v104/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v104/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v104/methods/account_updatePasswordSettings.md b/old_docs/API_docs_v104/methods/account_updatePasswordSettings.md
index 80f27228..7afb81ea 100644
--- a/old_docs/API_docs_v104/methods/account_updatePasswordSettings.md
+++ b/old_docs/API_docs_v104/methods/account_updatePasswordSettings.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password|[InputCheckPasswordSRP](../types/InputCheckPasswordSRP.md) | You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|new\_settings|[account\_PasswordInputSettings](../types/account_PasswordInputSettings.md) | New 2FA settings | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->account->updatePasswordSettings(['password' => InputCheckPasswordSRP, 'new_settings' => account_PasswordInputSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = account.updatePasswordSettings({password=InputCheckPasswordSRP, new_settings=account_PasswordInputSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EMAIL_UNCONFIRMED|Email unconfirmed|
+|400|EMAIL_UNCONFIRMED_X|The provided email isn't confirmed, X is the length of the verification code that was just sent to the email.|
+|400|NEW_SALT_INVALID|The new salt is invalid|
+|400|NEW_SETTINGS_INVALID|The new settings are invalid|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v104/methods/account_updateProfile.md b/old_docs/API_docs_v104/methods/account_updateProfile.md
index af5b6a0f..0d74c5e5 100644
--- a/old_docs/API_docs_v104/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v104/methods/account_updateProfile.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v104/methods/account_updateStatus.md b/old_docs/API_docs_v104/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v104/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v104/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v104/methods/account_updateUsername.md b/old_docs/API_docs_v104/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v104/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v104/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v104/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v104/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v104/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v104/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v104/methods/auth_cancelCode.md b/old_docs/API_docs_v104/methods/auth_cancelCode.md
index fcbd7713..a69e0118 100644
--- a/old_docs/API_docs_v104/methods/auth_cancelCode.md
+++ b/old_docs/API_docs_v104/methods/auth_cancelCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = auth.cancelCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v104/methods/auth_checkPassword.md b/old_docs/API_docs_v104/methods/auth_checkPassword.md
index 8d76c483..ad2a88a2 100644
--- a/old_docs/API_docs_v104/methods/auth_checkPassword.md
+++ b/old_docs/API_docs_v104/methods/auth_checkPassword.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password|[InputCheckPasswordSRP](../types/InputCheckPasswordSRP.md) | You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->checkPassword(['password' => InputCheckPasswordSRP, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.checkPassword({password=InputCheckPasswordSRP, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v104/methods/auth_exportAuthorization.md b/old_docs/API_docs_v104/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v104/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v104/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v104/methods/auth_importAuthorization.md b/old_docs/API_docs_v104/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v104/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v104/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v104/methods/auth_importBotAuthorization.md b/old_docs/API_docs_v104/methods/auth_importBotAuthorization.md
index 1a98c1b9..98a2f8ca 100644
--- a/old_docs/API_docs_v104/methods/auth_importBotAuthorization.md
+++ b/old_docs/API_docs_v104/methods/auth_importBotAuthorization.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|api\_id|[int](../types/int.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_hash|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|bot\_auth\_token|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importBotAuthorization(['api_id' => int, 'api_hash' => 'string', 'bot_auth_token' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importBotAuthorization({api_id=int, api_hash='string', bot_auth_token='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ACCESS_TOKEN_EXPIRED|Access token expired|
+|400|ACCESS_TOKEN_INVALID|Access token invalid|
+|400|API_ID_INVALID|API ID invalid|
diff --git a/old_docs/API_docs_v104/methods/auth_logOut.md b/old_docs/API_docs_v104/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v104/methods/auth_logOut.md
+++ b/old_docs/API_docs_v104/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v104/methods/auth_recoverPassword.md b/old_docs/API_docs_v104/methods/auth_recoverPassword.md
index 83ff5aed..d4bad9c5 100644
--- a/old_docs/API_docs_v104/methods/auth_recoverPassword.md
+++ b/old_docs/API_docs_v104/methods/auth_recoverPassword.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
auth_Authorization = auth.recoverPassword({code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_EMPTY|The provided code is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_EMPTY|The provided code is empty|
diff --git a/old_docs/API_docs_v104/methods/auth_requestPasswordRecovery.md b/old_docs/API_docs_v104/methods/auth_requestPasswordRecovery.md
index 1864bbb0..b6ad57ba 100644
--- a/old_docs/API_docs_v104/methods/auth_requestPasswordRecovery.md
+++ b/old_docs/API_docs_v104/methods/auth_requestPasswordRecovery.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
auth_PasswordRecovery = auth.requestPasswordRecovery({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_EMPTY|The provided password is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_EMPTY|The provided password is empty|
diff --git a/old_docs/API_docs_v104/methods/auth_resendCode.md b/old_docs/API_docs_v104/methods/auth_resendCode.md
index ff7868ea..ec730d75 100644
--- a/old_docs/API_docs_v104/methods/auth_resendCode.md
+++ b/old_docs/API_docs_v104/methods/auth_resendCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = auth.resendCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v104/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v104/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v104/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v104/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v104/methods/auth_sendCode.md b/old_docs/API_docs_v104/methods/auth_sendCode.md
index 9afebb55..83dfd500 100644
--- a/old_docs/API_docs_v104/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v104/methods/auth_sendCode.md
@@ -7,8 +7,58 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+|settings|[CodeSettings](../types/CodeSettings.md) | You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['phone_number' => 'string', 'api_id' => int, 'api_hash' => 'string', 'settings' => CodeSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({phone_number='string', api_id=int, api_hash='string', settings=CodeSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v104/methods/auth_signIn.md b/old_docs/API_docs_v104/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v104/methods/auth_signIn.md
+++ b/old_docs/API_docs_v104/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v104/methods/auth_signUp.md b/old_docs/API_docs_v104/methods/auth_signUp.md
index 15960145..b6886e69 100644
--- a/old_docs/API_docs_v104/methods/auth_signUp.md
+++ b/old_docs/API_docs_v104/methods/auth_signUp.md
@@ -7,8 +7,54 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v104/methods/bots_answerWebhookJSONQuery.md b/old_docs/API_docs_v104/methods/bots_answerWebhookJSONQuery.md
index ae0fa6d9..f2233514 100644
--- a/old_docs/API_docs_v104/methods/bots_answerWebhookJSONQuery.md
+++ b/old_docs/API_docs_v104/methods/bots_answerWebhookJSONQuery.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = bots.answerWebhookJSONQuery({query_id=long, data=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v104/methods/bots_sendCustomRequest.md b/old_docs/API_docs_v104/methods/bots_sendCustomRequest.md
index c1fd8183..8a6a2df5 100644
--- a/old_docs/API_docs_v104/methods/bots_sendCustomRequest.md
+++ b/old_docs/API_docs_v104/methods/bots_sendCustomRequest.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
DataJSON = bots.sendCustomRequest({custom_method='string', params=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v104/methods/channels_checkUsername.md b/old_docs/API_docs_v104/methods/channels_checkUsername.md
index 483a2f6f..52365d34 100644
--- a/old_docs/API_docs_v104/methods/channels_checkUsername.md
+++ b/old_docs/API_docs_v104/methods/channels_checkUsername.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Bool = channels.checkUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v104/methods/channels_createChannel.md b/old_docs/API_docs_v104/methods/channels_createChannel.md
index 1b34ffcd..9f547934 100644
--- a/old_docs/API_docs_v104/methods/channels_createChannel.md
+++ b/old_docs/API_docs_v104/methods/channels_createChannel.md
@@ -47,12 +47,12 @@ Or, if you're into Lua:
Updates = channels.createChannel({broadcast=Bool, megagroup=Bool, title='string', about='string', geo_point=InputGeoPoint, address='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_TITLE_EMPTY|No chat title provided|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
+|406|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v104/methods/channels_deleteChannel.md b/old_docs/API_docs_v104/methods/channels_deleteChannel.md
index 53a9c23d..1b8d2d48 100644
--- a/old_docs/API_docs_v104/methods/channels_deleteChannel.md
+++ b/old_docs/API_docs_v104/methods/channels_deleteChannel.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Updates = channels.deleteChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v104/methods/channels_deleteMessages.md b/old_docs/API_docs_v104/methods/channels_deleteMessages.md
index f76a9ad1..463ebad0 100644
--- a/old_docs/API_docs_v104/methods/channels_deleteMessages.md
+++ b/old_docs/API_docs_v104/methods/channels_deleteMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_AffectedMessages = channels.deleteMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v104/methods/channels_deleteUserHistory.md b/old_docs/API_docs_v104/methods/channels_deleteUserHistory.md
index 0a4e7d82..33905a7e 100644
--- a/old_docs/API_docs_v104/methods/channels_deleteUserHistory.md
+++ b/old_docs/API_docs_v104/methods/channels_deleteUserHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedHistory = channels.deleteUserHistory({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v104/methods/channels_editAdmin.md b/old_docs/API_docs_v104/methods/channels_editAdmin.md
index d51157ef..1b2ba5c3 100644
--- a/old_docs/API_docs_v104/methods/channels_editAdmin.md
+++ b/old_docs/API_docs_v104/methods/channels_editAdmin.md
@@ -45,19 +45,19 @@ Or, if you're into Lua:
Updates = channels.editAdmin({channel=InputChannel, user_id=InputUser, admin_rights=ChatAdminRights, rank='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ADMINS_TOO_MUCH|There are too many admins|
-|BOT_CHANNELS_NA|Bots can't edit admin privileges|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
-|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ADMINS_TOO_MUCH|There are too many admins|
+|400|BOT_CHANNELS_NA|Bots can't edit admin privileges|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
+|403|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v104/methods/channels_editBanned.md b/old_docs/API_docs_v104/methods/channels_editBanned.md
index 8b08ed22..b9f1b58a 100644
--- a/old_docs/API_docs_v104/methods/channels_editBanned.md
+++ b/old_docs/API_docs_v104/methods/channels_editBanned.md
@@ -44,14 +44,14 @@ Or, if you're into Lua:
Updates = channels.editBanned({channel=InputChannel, user_id=InputUser, banned_rights=ChatBannedRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ADMIN_INVALID|You're not an admin|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ADMIN_INVALID|You're not an admin|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v104/methods/channels_editPhoto.md b/old_docs/API_docs_v104/methods/channels_editPhoto.md
index bec0ba48..caef32d5 100644
--- a/old_docs/API_docs_v104/methods/channels_editPhoto.md
+++ b/old_docs/API_docs_v104/methods/channels_editPhoto.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editPhoto({channel=InputChannel, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|PHOTO_INVALID|Photo invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|PHOTO_INVALID|Photo invalid|
diff --git a/old_docs/API_docs_v104/methods/channels_editTitle.md b/old_docs/API_docs_v104/methods/channels_editTitle.md
index b5efeb39..d7cb33da 100644
--- a/old_docs/API_docs_v104/methods/channels_editTitle.md
+++ b/old_docs/API_docs_v104/methods/channels_editTitle.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editTitle({channel=InputChannel, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v104/methods/channels_exportMessageLink.md b/old_docs/API_docs_v104/methods/channels_exportMessageLink.md
index 5dea54a7..fc2f248b 100644
--- a/old_docs/API_docs_v104/methods/channels_exportMessageLink.md
+++ b/old_docs/API_docs_v104/methods/channels_exportMessageLink.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
ExportedMessageLink = channels.exportMessageLink({channel=InputChannel, id=int, grouped=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v104/methods/channels_getAdminLog.md b/old_docs/API_docs_v104/methods/channels_getAdminLog.md
index 377c7320..adb87748 100644
--- a/old_docs/API_docs_v104/methods/channels_getAdminLog.md
+++ b/old_docs/API_docs_v104/methods/channels_getAdminLog.md
@@ -48,12 +48,12 @@ Or, if you're into Lua:
channels_AdminLogResults = channels.getAdminLog({channel=InputChannel, q='string', events_filter=ChannelAdminLogEventsFilter, admins={InputUser}, max_id=long, min_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v104/methods/channels_getChannels.md b/old_docs/API_docs_v104/methods/channels_getChannels.md
index 78d50641..95d7a188 100644
--- a/old_docs/API_docs_v104/methods/channels_getChannels.md
+++ b/old_docs/API_docs_v104/methods/channels_getChannels.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = channels.getChannels({id={InputChannel}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v104/methods/channels_getFullChannel.md b/old_docs/API_docs_v104/methods/channels_getFullChannel.md
index 45a8ec72..ebd53de4 100644
--- a/old_docs/API_docs_v104/methods/channels_getFullChannel.md
+++ b/old_docs/API_docs_v104/methods/channels_getFullChannel.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->channels->getFullChannel(['channel' => InputChannel, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = channels.getFullChannel({channel=InputChannel, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v104/methods/channels_getLeftChannels.md b/old_docs/API_docs_v104/methods/channels_getLeftChannels.md
index 2d256964..fac7ae07 100644
--- a/old_docs/API_docs_v104/methods/channels_getLeftChannels.md
+++ b/old_docs/API_docs_v104/methods/channels_getLeftChannels.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_Chats = channels.getLeftChannels({offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TAKEOUT_REQUIRED|A takeout session has to be initialized, first|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|TAKEOUT_REQUIRED|A takeout session has to be initialized, first|
diff --git a/old_docs/API_docs_v104/methods/channels_getMessages.md b/old_docs/API_docs_v104/methods/channels_getMessages.md
index 90cf5a47..f1ae0a4d 100644
--- a/old_docs/API_docs_v104/methods/channels_getMessages.md
+++ b/old_docs/API_docs_v104/methods/channels_getMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_Messages = channels.getMessages({channel=InputChannel, id={InputMessage}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
diff --git a/old_docs/API_docs_v104/methods/channels_getParticipant.md b/old_docs/API_docs_v104/methods/channels_getParticipant.md
index 6633114f..808156fd 100644
--- a/old_docs/API_docs_v104/methods/channels_getParticipant.md
+++ b/old_docs/API_docs_v104/methods/channels_getParticipant.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
channels_ChannelParticipant = channels.getParticipant({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v104/methods/channels_getParticipants.md b/old_docs/API_docs_v104/methods/channels_getParticipants.md
index 5ff242e6..fb7a39df 100644
--- a/old_docs/API_docs_v104/methods/channels_getParticipants.md
+++ b/old_docs/API_docs_v104/methods/channels_getParticipants.md
@@ -46,14 +46,14 @@ Or, if you're into Lua:
channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, filter=ChannelParticipantsFilter, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v104/methods/channels_inviteToChannel.md b/old_docs/API_docs_v104/methods/channels_inviteToChannel.md
index f7093f13..d8c5e88a 100644
--- a/old_docs/API_docs_v104/methods/channels_inviteToChannel.md
+++ b/old_docs/API_docs_v104/methods/channels_inviteToChannel.md
@@ -43,25 +43,25 @@ Or, if you're into Lua:
Updates = channels.inviteToChannel({channel=InputChannel, users={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
-|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_BLOCKED|User blocked|
-|USER_BOT|Bots can only be admins in channels.|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_KICKED|This user was kicked from this supergroup/channel|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
+|400|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_BLOCKED|User blocked|
+|400|USER_BOT|Bots can only be admins in channels.|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_KICKED|This user was kicked from this supergroup/channel|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v104/methods/channels_joinChannel.md b/old_docs/API_docs_v104/methods/channels_joinChannel.md
index b056031a..a4a7c177 100644
--- a/old_docs/API_docs_v104/methods/channels_joinChannel.md
+++ b/old_docs/API_docs_v104/methods/channels_joinChannel.md
@@ -42,15 +42,15 @@ Or, if you're into Lua:
Updates = channels.joinChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
diff --git a/old_docs/API_docs_v104/methods/channels_leaveChannel.md b/old_docs/API_docs_v104/methods/channels_leaveChannel.md
index fdea13ba..6538d443 100644
--- a/old_docs/API_docs_v104/methods/channels_leaveChannel.md
+++ b/old_docs/API_docs_v104/methods/channels_leaveChannel.md
@@ -42,14 +42,14 @@ Or, if you're into Lua:
Updates = channels.leaveChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
-|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
diff --git a/old_docs/API_docs_v104/methods/channels_readHistory.md b/old_docs/API_docs_v104/methods/channels_readHistory.md
index 93dc075f..3532dae0 100644
--- a/old_docs/API_docs_v104/methods/channels_readHistory.md
+++ b/old_docs/API_docs_v104/methods/channels_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readHistory({channel=InputChannel, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v104/methods/channels_readMessageContents.md b/old_docs/API_docs_v104/methods/channels_readMessageContents.md
index 80ddf2b0..8cd8c620 100644
--- a/old_docs/API_docs_v104/methods/channels_readMessageContents.md
+++ b/old_docs/API_docs_v104/methods/channels_readMessageContents.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readMessageContents({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v104/methods/channels_reportSpam.md b/old_docs/API_docs_v104/methods/channels_reportSpam.md
index db80676a..7e273cc5 100644
--- a/old_docs/API_docs_v104/methods/channels_reportSpam.md
+++ b/old_docs/API_docs_v104/methods/channels_reportSpam.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
Bool = channels.reportSpam({channel=InputChannel, user_id=InputUser, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
diff --git a/old_docs/API_docs_v104/methods/channels_setStickers.md b/old_docs/API_docs_v104/methods/channels_setStickers.md
index 10cd68bf..c9b95527 100644
--- a/old_docs/API_docs_v104/methods/channels_setStickers.md
+++ b/old_docs/API_docs_v104/methods/channels_setStickers.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.setStickers({channel=InputChannel, stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PARTICIPANTS_TOO_FEW|Not enough participants|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PARTICIPANTS_TOO_FEW|Not enough participants|
diff --git a/old_docs/API_docs_v104/methods/channels_toggleSignatures.md b/old_docs/API_docs_v104/methods/channels_toggleSignatures.md
index cdfc0fda..f8624946 100644
--- a/old_docs/API_docs_v104/methods/channels_toggleSignatures.md
+++ b/old_docs/API_docs_v104/methods/channels_toggleSignatures.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = channels.toggleSignatures({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v104/methods/channels_updateUsername.md b/old_docs/API_docs_v104/methods/channels_updateUsername.md
index 677712f9..48d250e6 100644
--- a/old_docs/API_docs_v104/methods/channels_updateUsername.md
+++ b/old_docs/API_docs_v104/methods/channels_updateUsername.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Bool = channels.updateUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_OCCUPIED|The provided username is already occupied|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
diff --git a/old_docs/API_docs_v104/methods/contacts_addContact.md b/old_docs/API_docs_v104/methods/contacts_addContact.md
index 0d5aae8c..80f540bb 100644
--- a/old_docs/API_docs_v104/methods/contacts_addContact.md
+++ b/old_docs/API_docs_v104/methods/contacts_addContact.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
Updates = contacts.addContact({add_phone_privacy_exception=Bool, id=InputUser, first_name='string', last_name='string', phone='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v104/methods/contacts_block.md b/old_docs/API_docs_v104/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v104/methods/contacts_block.md
+++ b/old_docs/API_docs_v104/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v104/methods/contacts_deleteContacts.md b/old_docs/API_docs_v104/methods/contacts_deleteContacts.md
index b4f47c1b..007fd8d4 100644
--- a/old_docs/API_docs_v104/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v104/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Updates = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v104/methods/contacts_getStatuses.md b/old_docs/API_docs_v104/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v104/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v104/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v104/methods/contacts_getTopPeers.md b/old_docs/API_docs_v104/methods/contacts_getTopPeers.md
index 586fb99e..8c307877 100644
--- a/old_docs/API_docs_v104/methods/contacts_getTopPeers.md
+++ b/old_docs/API_docs_v104/methods/contacts_getTopPeers.md
@@ -52,10 +52,10 @@ Or, if you're into Lua:
contacts_TopPeers = contacts.getTopPeers({correspondents=Bool, bots_pm=Bool, bots_inline=Bool, phone_calls=Bool, forward_users=Bool, forward_chats=Bool, groups=Bool, channels=Bool, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TYPES_EMPTY|No top peer type was provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TYPES_EMPTY|No top peer type was provided|
diff --git a/old_docs/API_docs_v104/methods/contacts_resetTopPeerRating.md b/old_docs/API_docs_v104/methods/contacts_resetTopPeerRating.md
index 43cf1685..787be177 100644
--- a/old_docs/API_docs_v104/methods/contacts_resetTopPeerRating.md
+++ b/old_docs/API_docs_v104/methods/contacts_resetTopPeerRating.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = contacts.resetTopPeerRating({category=TopPeerCategory, peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v104/methods/contacts_resolveUsername.md b/old_docs/API_docs_v104/methods/contacts_resolveUsername.md
index fab56bb1..68f709db 100644
--- a/old_docs/API_docs_v104/methods/contacts_resolveUsername.md
+++ b/old_docs/API_docs_v104/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [contacts\_ResolvedPeer](../types/contacts_ResolvedPeer.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$contacts_ResolvedPeer = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+contacts_ResolvedPeer = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v104/methods/contacts_search.md b/old_docs/API_docs_v104/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v104/methods/contacts_search.md
+++ b/old_docs/API_docs_v104/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v104/methods/contacts_unblock.md b/old_docs/API_docs_v104/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v104/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v104/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v104/methods/folders_editPeerFolders.md b/old_docs/API_docs_v104/methods/folders_editPeerFolders.md
index f4884643..28c8db40 100644
--- a/old_docs/API_docs_v104/methods/folders_editPeerFolders.md
+++ b/old_docs/API_docs_v104/methods/folders_editPeerFolders.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Updates = folders.editPeerFolders({folder_peers={InputFolderPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FOLDER_ID_INVALID|Invalid folder ID|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FOLDER_ID_INVALID|Invalid folder ID|
diff --git a/old_docs/API_docs_v104/methods/help_getCdnConfig.md b/old_docs/API_docs_v104/methods/help_getCdnConfig.md
index 9e047a1d..ba526365 100644
--- a/old_docs/API_docs_v104/methods/help_getCdnConfig.md
+++ b/old_docs/API_docs_v104/methods/help_getCdnConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
CdnConfig = help.getCdnConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v104/methods/help_getConfig.md b/old_docs/API_docs_v104/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v104/methods/help_getConfig.md
+++ b/old_docs/API_docs_v104/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v104/methods/initConnection.md b/old_docs/API_docs_v104/methods/initConnection.md
index 69d29401..5c4bfab9 100644
--- a/old_docs/API_docs_v104/methods/initConnection.md
+++ b/old_docs/API_docs_v104/methods/initConnection.md
@@ -50,11 +50,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', system_lang_code='string', lang_pack='string', lang_code='string', proxy=InputClientProxy, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v104/methods/invokeWithLayer.md b/old_docs/API_docs_v104/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/old_docs/API_docs_v104/methods/invokeWithLayer.md
+++ b/old_docs/API_docs_v104/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v104/methods/langpack_getDifference.md b/old_docs/API_docs_v104/methods/langpack_getDifference.md
index 712d88f4..6995c17d 100644
--- a/old_docs/API_docs_v104/methods/langpack_getDifference.md
+++ b/old_docs/API_docs_v104/methods/langpack_getDifference.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getDifference({lang_pack='string', lang_code='string', from_version=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v104/methods/langpack_getLangPack.md b/old_docs/API_docs_v104/methods/langpack_getLangPack.md
index 55d30529..d2280670 100644
--- a/old_docs/API_docs_v104/methods/langpack_getLangPack.md
+++ b/old_docs/API_docs_v104/methods/langpack_getLangPack.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getLangPack({lang_pack='string', lang_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v104/methods/langpack_getLanguages.md b/old_docs/API_docs_v104/methods/langpack_getLanguages.md
index d4b9734e..686a50f5 100644
--- a/old_docs/API_docs_v104/methods/langpack_getLanguages.md
+++ b/old_docs/API_docs_v104/methods/langpack_getLanguages.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Vector_of_LangPackLanguage = langpack.getLanguages({lang_pack='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v104/methods/langpack_getStrings.md b/old_docs/API_docs_v104/methods/langpack_getStrings.md
index 65f65dfc..f0463eed 100644
--- a/old_docs/API_docs_v104/methods/langpack_getStrings.md
+++ b/old_docs/API_docs_v104/methods/langpack_getStrings.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Vector_of_LangPackString = langpack.getStrings({lang_pack='string', lang_code='string', keys={'string'}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_acceptEncryption.md b/old_docs/API_docs_v104/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v104/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v104/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v104/methods/messages_addChatUser.md b/old_docs/API_docs_v104/methods/messages_addChatUser.md
index bc0d6253..b5e164b2 100644
--- a/old_docs/API_docs_v104/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v104/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
Updates = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v104/methods/messages_checkChatInvite.md b/old_docs/API_docs_v104/methods/messages_checkChatInvite.md
index de28b09b..0d13d55e 100644
--- a/old_docs/API_docs_v104/methods/messages_checkChatInvite.md
+++ b/old_docs/API_docs_v104/methods/messages_checkChatInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ChatInvite = messages.checkChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_createChat.md b/old_docs/API_docs_v104/methods/messages_createChat.md
index 8f6e9672..b2623f1d 100644
--- a/old_docs/API_docs_v104/methods/messages_createChat.md
+++ b/old_docs/API_docs_v104/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v104/methods/messages_deleteChatUser.md b/old_docs/API_docs_v104/methods/messages_deleteChatUser.md
index 63529571..11b9b220 100644
--- a/old_docs/API_docs_v104/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v104/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v104/methods/messages_deleteHistory.md b/old_docs/API_docs_v104/methods/messages_deleteHistory.md
index faddfda5..5a38e404 100644
--- a/old_docs/API_docs_v104/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v104/methods/messages_deleteHistory.md
@@ -45,10 +45,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({just_clear=Bool, revoke=Bool, peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_deleteMessages.md b/old_docs/API_docs_v104/methods/messages_deleteMessages.md
index 4c65080a..41517dd0 100644
--- a/old_docs/API_docs_v104/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v104/methods/messages_deleteMessages.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.deleteMessages({revoke=Bool, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v104/methods/messages_discardEncryption.md b/old_docs/API_docs_v104/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v104/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v104/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_editChatAbout.md b/old_docs/API_docs_v104/methods/messages_editChatAbout.md
index 6c562c12..05fff24f 100644
--- a/old_docs/API_docs_v104/methods/messages_editChatAbout.md
+++ b/old_docs/API_docs_v104/methods/messages_editChatAbout.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.editChatAbout({peer=InputPeer, about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_editChatAdmin.md b/old_docs/API_docs_v104/methods/messages_editChatAdmin.md
index 2b4dc94c..6f6c1376 100644
--- a/old_docs/API_docs_v104/methods/messages_editChatAdmin.md
+++ b/old_docs/API_docs_v104/methods/messages_editChatAdmin.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.editChatAdmin({chat_id=InputPeer, user_id=InputUser, is_admin=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_editChatDefaultBannedRights.md b/old_docs/API_docs_v104/methods/messages_editChatDefaultBannedRights.md
index 30e7836e..a8e075eb 100644
--- a/old_docs/API_docs_v104/methods/messages_editChatDefaultBannedRights.md
+++ b/old_docs/API_docs_v104/methods/messages_editChatDefaultBannedRights.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatDefaultBannedRights({peer=InputPeer, banned_rights=ChatBannedRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BANNED_RIGHTS_INVALID|You provided some invalid flags in the banned rights|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BANNED_RIGHTS_INVALID|You provided some invalid flags in the banned rights|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_editChatPhoto.md b/old_docs/API_docs_v104/methods/messages_editChatPhoto.md
index 2a82c232..a21a03b9 100644
--- a/old_docs/API_docs_v104/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v104/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Updates = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_editChatTitle.md b/old_docs/API_docs_v104/methods/messages_editChatTitle.md
index 2c338ad6..72f78741 100644
--- a/old_docs/API_docs_v104/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v104/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v104/methods/messages_editInlineBotMessage.md b/old_docs/API_docs_v104/methods/messages_editInlineBotMessage.md
index 67313f15..5f7a31c9 100644
--- a/old_docs/API_docs_v104/methods/messages_editInlineBotMessage.md
+++ b/old_docs/API_docs_v104/methods/messages_editInlineBotMessage.md
@@ -96,11 +96,11 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
diff --git a/old_docs/API_docs_v104/methods/messages_editMessage.md b/old_docs/API_docs_v104/methods/messages_editMessage.md
index 720f4285..d394d1aa 100644
--- a/old_docs/API_docs_v104/methods/messages_editMessage.md
+++ b/old_docs/API_docs_v104/methods/messages_editMessage.md
@@ -97,20 +97,20 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v104/methods/messages_exportChatInvite.md b/old_docs/API_docs_v104/methods/messages_exportChatInvite.md
index 9028d4cd..c78d7fb9 100644
--- a/old_docs/API_docs_v104/methods/messages_exportChatInvite.md
+++ b/old_docs/API_docs_v104/methods/messages_exportChatInvite.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
ExportedChatInvite = messages.exportChatInvite({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_faveSticker.md b/old_docs/API_docs_v104/methods/messages_faveSticker.md
index a8b1ab56..9f9f423d 100644
--- a/old_docs/API_docs_v104/methods/messages_faveSticker.md
+++ b/old_docs/API_docs_v104/methods/messages_faveSticker.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.faveSticker({id=InputDocument, unfave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_forwardMessages.md b/old_docs/API_docs_v104/methods/messages_forwardMessages.md
index d2453d05..743fa7a6 100644
--- a/old_docs/API_docs_v104/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v104/methods/messages_forwardMessages.md
@@ -48,29 +48,29 @@ Or, if you're into Lua:
Updates = messages.forwardMessages({silent=Bool, background=Bool, with_my_score=Bool, grouped=Bool, from_peer=InputPeer, id={int}, to_peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v104/methods/messages_getBotCallbackAnswer.md b/old_docs/API_docs_v104/methods/messages_getBotCallbackAnswer.md
index f97fa5b0..3f8cc23b 100644
--- a/old_docs/API_docs_v104/methods/messages_getBotCallbackAnswer.md
+++ b/old_docs/API_docs_v104/methods/messages_getBotCallbackAnswer.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
messages_BotCallbackAnswer = messages.getBotCallbackAnswer({game=Bool, peer=InputPeer, msg_id=int, data='bytes', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v104/methods/messages_getChats.md b/old_docs/API_docs_v104/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/old_docs/API_docs_v104/methods/messages_getChats.md
+++ b/old_docs/API_docs_v104/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_getCommonChats.md b/old_docs/API_docs_v104/methods/messages_getCommonChats.md
index 9470a0ee..cff23c3f 100644
--- a/old_docs/API_docs_v104/methods/messages_getCommonChats.md
+++ b/old_docs/API_docs_v104/methods/messages_getCommonChats.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_Chats = messages.getCommonChats({user_id=InputUser, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_getDhConfig.md b/old_docs/API_docs_v104/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v104/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v104/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_getDialogs.md b/old_docs/API_docs_v104/methods/messages_getDialogs.md
index 7e6b77a6..d6bcd23d 100644
--- a/old_docs/API_docs_v104/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v104/methods/messages_getDialogs.md
@@ -48,13 +48,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({exclude_pinned=Bool, folder_id=int, offset_date=int, offset_id=int, offset_peer=InputPeer, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v104/methods/messages_getDocumentByHash.md b/old_docs/API_docs_v104/methods/messages_getDocumentByHash.md
index 73a235d5..06469c52 100644
--- a/old_docs/API_docs_v104/methods/messages_getDocumentByHash.md
+++ b/old_docs/API_docs_v104/methods/messages_getDocumentByHash.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Document = messages.getDocumentByHash({sha256='bytes', size=int, mime_type='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_getFullChat.md b/old_docs/API_docs_v104/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v104/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v104/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_getGameHighScores.md b/old_docs/API_docs_v104/methods/messages_getGameHighScores.md
index 249e1d09..5c484bbb 100644
--- a/old_docs/API_docs_v104/methods/messages_getGameHighScores.md
+++ b/old_docs/API_docs_v104/methods/messages_getGameHighScores.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
messages_HighScores = messages.getGameHighScores({peer=InputPeer, id=int, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v104/methods/messages_getHistory.md b/old_docs/API_docs_v104/methods/messages_getHistory.md
index d623a61e..a0389d7b 100644
--- a/old_docs/API_docs_v104/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v104/methods/messages_getHistory.md
@@ -49,16 +49,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset_id=int, offset_date=int, add_offset=int, limit=int, max_id=int, min_id=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v104/methods/messages_getInlineBotResults.md b/old_docs/API_docs_v104/methods/messages_getInlineBotResults.md
index 1efcb412..17d678b7 100644
--- a/old_docs/API_docs_v104/methods/messages_getInlineBotResults.md
+++ b/old_docs/API_docs_v104/methods/messages_getInlineBotResults.md
@@ -46,13 +46,13 @@ Or, if you're into Lua:
messages_BotResults = messages.getInlineBotResults({bot=InputUser, peer=InputPeer, geo_point=InputGeoPoint, query='string', offset='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
-|BOT_INVALID|This is not a valid bot|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
+|400|BOT_INVALID|This is not a valid bot|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v104/methods/messages_getInlineGameHighScores.md b/old_docs/API_docs_v104/methods/messages_getInlineGameHighScores.md
index e68c6db8..ac33b6b8 100644
--- a/old_docs/API_docs_v104/methods/messages_getInlineGameHighScores.md
+++ b/old_docs/API_docs_v104/methods/messages_getInlineGameHighScores.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_HighScores = messages.getInlineGameHighScores({id=InputBotInlineMessageID, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v104/methods/messages_getMessageEditData.md b/old_docs/API_docs_v104/methods/messages_getMessageEditData.md
index 7f1b7164..b907d78c 100644
--- a/old_docs/API_docs_v104/methods/messages_getMessageEditData.md
+++ b/old_docs/API_docs_v104/methods/messages_getMessageEditData.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_MessageEditData = messages.getMessageEditData({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v104/methods/messages_getMessagesViews.md b/old_docs/API_docs_v104/methods/messages_getMessagesViews.md
index 3d490315..143e568c 100644
--- a/old_docs/API_docs_v104/methods/messages_getMessagesViews.md
+++ b/old_docs/API_docs_v104/methods/messages_getMessagesViews.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
Vector_of_int = messages.getMessagesViews({peer=InputPeer, id={int}, increment=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_getPeerDialogs.md b/old_docs/API_docs_v104/methods/messages_getPeerDialogs.md
index 02eb9b43..17e0d11e 100644
--- a/old_docs/API_docs_v104/methods/messages_getPeerDialogs.md
+++ b/old_docs/API_docs_v104/methods/messages_getPeerDialogs.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPeerDialogs({peers={InputDialogPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_getPeerSettings.md b/old_docs/API_docs_v104/methods/messages_getPeerSettings.md
index 26dafb9b..69032ff5 100644
--- a/old_docs/API_docs_v104/methods/messages_getPeerSettings.md
+++ b/old_docs/API_docs_v104/methods/messages_getPeerSettings.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
PeerSettings = messages.getPeerSettings({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_getPinnedDialogs.md b/old_docs/API_docs_v104/methods/messages_getPinnedDialogs.md
index 8d23e4fa..7fbfecd0 100644
--- a/old_docs/API_docs_v104/methods/messages_getPinnedDialogs.md
+++ b/old_docs/API_docs_v104/methods/messages_getPinnedDialogs.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPinnedDialogs({folder_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FOLDER_ID_INVALID|Invalid folder ID|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FOLDER_ID_INVALID|Invalid folder ID|
diff --git a/old_docs/API_docs_v104/methods/messages_getStatsURL.md b/old_docs/API_docs_v104/methods/messages_getStatsURL.md
index 4f7c08d9..f0c44447 100644
--- a/old_docs/API_docs_v104/methods/messages_getStatsURL.md
+++ b/old_docs/API_docs_v104/methods/messages_getStatsURL.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
StatsURL = messages.getStatsURL({dark=Bool, peer=InputPeer, params='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_getStickerSet.md b/old_docs/API_docs_v104/methods/messages_getStickerSet.md
index 57bce84d..487316cc 100644
--- a/old_docs/API_docs_v104/methods/messages_getStickerSet.md
+++ b/old_docs/API_docs_v104/methods/messages_getStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_StickerSet = messages.getStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_getUnreadMentions.md b/old_docs/API_docs_v104/methods/messages_getUnreadMentions.md
index 1fa1f269..923229eb 100644
--- a/old_docs/API_docs_v104/methods/messages_getUnreadMentions.md
+++ b/old_docs/API_docs_v104/methods/messages_getUnreadMentions.md
@@ -47,10 +47,10 @@ Or, if you're into Lua:
messages_Messages = messages.getUnreadMentions({peer=InputPeer, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_getWebPage.md b/old_docs/API_docs_v104/methods/messages_getWebPage.md
index ce51ff41..63ef5e93 100644
--- a/old_docs/API_docs_v104/methods/messages_getWebPage.md
+++ b/old_docs/API_docs_v104/methods/messages_getWebPage.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
WebPage = messages.getWebPage({url='string', hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|WC_CONVERT_URL_INVALID|WC convert URL invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|WC_CONVERT_URL_INVALID|WC convert URL invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_importChatInvite.md b/old_docs/API_docs_v104/methods/messages_importChatInvite.md
index 12120867..101b4b19 100644
--- a/old_docs/API_docs_v104/methods/messages_importChatInvite.md
+++ b/old_docs/API_docs_v104/methods/messages_importChatInvite.md
@@ -42,16 +42,16 @@ Or, if you're into Lua:
Updates = messages.importChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v104/methods/messages_installStickerSet.md b/old_docs/API_docs_v104/methods/messages_installStickerSet.md
index 21a57a85..67f2aca0 100644
--- a/old_docs/API_docs_v104/methods/messages_installStickerSet.md
+++ b/old_docs/API_docs_v104/methods/messages_installStickerSet.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_StickerSetInstallResult = messages.installStickerSet({stickerset=InputStickerSet, archived=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_migrateChat.md b/old_docs/API_docs_v104/methods/messages_migrateChat.md
index a72f4c11..ee4010eb 100644
--- a/old_docs/API_docs_v104/methods/messages_migrateChat.md
+++ b/old_docs/API_docs_v104/methods/messages_migrateChat.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
Updates = messages.migrateChat({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v104/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v104/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v104/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v104/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v104/methods/messages_readHistory.md b/old_docs/API_docs_v104/methods/messages_readHistory.md
index 2ad5cd09..a7f0eca7 100644
--- a/old_docs/API_docs_v104/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v104/methods/messages_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.readHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v104/methods/messages_receivedQueue.md b/old_docs/API_docs_v104/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v104/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v104/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v104/methods/messages_reorderPinnedDialogs.md b/old_docs/API_docs_v104/methods/messages_reorderPinnedDialogs.md
index 70482817..d83341a6 100644
--- a/old_docs/API_docs_v104/methods/messages_reorderPinnedDialogs.md
+++ b/old_docs/API_docs_v104/methods/messages_reorderPinnedDialogs.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.reorderPinnedDialogs({force=Bool, folder_id=int, order={InputDialogPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_reportEncryptedSpam.md b/old_docs/API_docs_v104/methods/messages_reportEncryptedSpam.md
index 9b1e868b..aeac27ef 100644
--- a/old_docs/API_docs_v104/methods/messages_reportEncryptedSpam.md
+++ b/old_docs/API_docs_v104/methods/messages_reportEncryptedSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportEncryptedSpam({peer=InputEncryptedChat, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_reportSpam.md b/old_docs/API_docs_v104/methods/messages_reportSpam.md
index e92fba13..dc256e55 100644
--- a/old_docs/API_docs_v104/methods/messages_reportSpam.md
+++ b/old_docs/API_docs_v104/methods/messages_reportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_requestEncryption.md b/old_docs/API_docs_v104/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v104/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v104/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_saveDraft.md b/old_docs/API_docs_v104/methods/messages_saveDraft.md
index 791ce234..ea6d407e 100644
--- a/old_docs/API_docs_v104/methods/messages_saveDraft.md
+++ b/old_docs/API_docs_v104/methods/messages_saveDraft.md
@@ -89,10 +89,10 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_saveGif.md b/old_docs/API_docs_v104/methods/messages_saveGif.md
index f504ff9e..010e17ec 100644
--- a/old_docs/API_docs_v104/methods/messages_saveGif.md
+++ b/old_docs/API_docs_v104/methods/messages_saveGif.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.saveGif({id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|GIF_ID_INVALID|The provided GIF ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|GIF_ID_INVALID|The provided GIF ID is invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_saveRecentSticker.md b/old_docs/API_docs_v104/methods/messages_saveRecentSticker.md
index 98c74efd..072b6fe9 100644
--- a/old_docs/API_docs_v104/methods/messages_saveRecentSticker.md
+++ b/old_docs/API_docs_v104/methods/messages_saveRecentSticker.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.saveRecentSticker({attached=Bool, id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_search.md b/old_docs/API_docs_v104/methods/messages_search.md
index 83cb34c6..07529b40 100644
--- a/old_docs/API_docs_v104/methods/messages_search.md
+++ b/old_docs/API_docs_v104/methods/messages_search.md
@@ -53,16 +53,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({peer=InputPeer, q='string', from_id=InputUser, filter=MessagesFilter, min_date=int, max_date=int, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_searchGifs.md b/old_docs/API_docs_v104/methods/messages_searchGifs.md
index 7be4173b..1602d35e 100644
--- a/old_docs/API_docs_v104/methods/messages_searchGifs.md
+++ b/old_docs/API_docs_v104/methods/messages_searchGifs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_FoundGifs = messages.searchGifs({q='string', offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v104/methods/messages_searchGlobal.md b/old_docs/API_docs_v104/methods/messages_searchGlobal.md
index 8b87dcf3..a07e21e8 100644
--- a/old_docs/API_docs_v104/methods/messages_searchGlobal.md
+++ b/old_docs/API_docs_v104/methods/messages_searchGlobal.md
@@ -47,10 +47,10 @@ Or, if you're into Lua:
messages_Messages = messages.searchGlobal({folder_id=int, q='string', offset_rate=int, offset_peer=InputPeer, offset_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v104/methods/messages_sendEncrypted.md b/old_docs/API_docs_v104/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v104/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v104/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v104/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v104/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v104/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v104/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v104/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v104/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v104/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v104/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v104/methods/messages_sendInlineBotResult.md b/old_docs/API_docs_v104/methods/messages_sendInlineBotResult.md
index 96d7571a..642ba34f 100644
--- a/old_docs/API_docs_v104/methods/messages_sendInlineBotResult.md
+++ b/old_docs/API_docs_v104/methods/messages_sendInlineBotResult.md
@@ -49,15 +49,15 @@ Or, if you're into Lua:
Updates = messages.sendInlineBotResult({silent=Bool, background=Bool, clear_draft=Bool, hide_via=Bool, peer=InputPeer, reply_to_msg_id=int, query_id=long, id='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INLINE_RESULT_EXPIRED|The inline query expired|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|QUERY_ID_EMPTY|The query ID is empty|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INLINE_RESULT_EXPIRED|The inline query expired|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|QUERY_ID_EMPTY|The query ID is empty|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v104/methods/messages_sendMedia.md b/old_docs/API_docs_v104/methods/messages_sendMedia.md
index 44c604c6..a2244583 100644
--- a/old_docs/API_docs_v104/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v104/methods/messages_sendMedia.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v104/methods/messages_sendMessage.md b/old_docs/API_docs_v104/methods/messages_sendMessage.md
index 5641ebc3..e0ab305d 100644
--- a/old_docs/API_docs_v104/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v104/methods/messages_sendMessage.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v104/methods/messages_sendMultiMedia.md b/old_docs/API_docs_v104/methods/messages_sendMultiMedia.md
index 9ebdcb88..5684a6d2 100644
--- a/old_docs/API_docs_v104/methods/messages_sendMultiMedia.md
+++ b/old_docs/API_docs_v104/methods/messages_sendMultiMedia.md
@@ -47,11 +47,11 @@ Or, if you're into Lua:
Updates = messages.sendMultiMedia({silent=Bool, background=Bool, clear_draft=Bool, peer=InputPeer, reply_to_msg_id=int, multi_media={InputSingleMedia}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_sendScreenshotNotification.md b/old_docs/API_docs_v104/methods/messages_sendScreenshotNotification.md
index 3f5bb36d..4e4e40f5 100644
--- a/old_docs/API_docs_v104/methods/messages_sendScreenshotNotification.md
+++ b/old_docs/API_docs_v104/methods/messages_sendScreenshotNotification.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = messages.sendScreenshotNotification({peer=InputPeer, reply_to_msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_setBotCallbackAnswer.md b/old_docs/API_docs_v104/methods/messages_setBotCallbackAnswer.md
index ed058b4f..630ca61c 100644
--- a/old_docs/API_docs_v104/methods/messages_setBotCallbackAnswer.md
+++ b/old_docs/API_docs_v104/methods/messages_setBotCallbackAnswer.md
@@ -52,11 +52,11 @@ Bool = messages.setBotCallbackAnswer({alert=Bool, query_id=long, message='string
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|URL_INVALID|Invalid URL provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|URL_INVALID|Invalid URL provided|
diff --git a/old_docs/API_docs_v104/methods/messages_setBotPrecheckoutResults.md b/old_docs/API_docs_v104/methods/messages_setBotPrecheckoutResults.md
index cc615123..d6e0e61b 100644
--- a/old_docs/API_docs_v104/methods/messages_setBotPrecheckoutResults.md
+++ b/old_docs/API_docs_v104/methods/messages_setBotPrecheckoutResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotPrecheckoutResults({success=Bool, query_id=long, error='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ERROR_TEXT_EMPTY|The provided error message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ERROR_TEXT_EMPTY|The provided error message is empty|
diff --git a/old_docs/API_docs_v104/methods/messages_setBotShippingResults.md b/old_docs/API_docs_v104/methods/messages_setBotShippingResults.md
index f3a86f4f..adc4f64f 100644
--- a/old_docs/API_docs_v104/methods/messages_setBotShippingResults.md
+++ b/old_docs/API_docs_v104/methods/messages_setBotShippingResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotShippingResults({query_id=long, error='string', shipping_options={ShippingOption}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v104/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v104/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v104/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_setGameScore.md b/old_docs/API_docs_v104/methods/messages_setGameScore.md
index 548ee889..429b04c6 100644
--- a/old_docs/API_docs_v104/methods/messages_setGameScore.md
+++ b/old_docs/API_docs_v104/methods/messages_setGameScore.md
@@ -47,12 +47,12 @@ Or, if you're into Lua:
Updates = messages.setGameScore({edit_message=Bool, force=Bool, peer=InputPeer, id=int, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v104/methods/messages_setInlineBotResults.md b/old_docs/API_docs_v104/methods/messages_setInlineBotResults.md
index ab388e39..df4c30d4 100644
--- a/old_docs/API_docs_v104/methods/messages_setInlineBotResults.md
+++ b/old_docs/API_docs_v104/methods/messages_setInlineBotResults.md
@@ -48,23 +48,23 @@ Or, if you're into Lua:
Bool = messages.setInlineBotResults({gallery=Bool, private=Bool, query_id=long, results={InputBotInlineResult}, cache_time=int, next_offset='string', switch_pm=InlineBotSwitchPM, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ARTICLE_TITLE_EMPTY|The title of the article is empty|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|PHOTO_INVALID|Photo invalid|
-|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
-|QUERY_ID_INVALID|The query ID is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|RESULT_TYPE_INVALID|Result type invalid|
-|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
-|START_PARAM_INVALID|Start parameter invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ARTICLE_TITLE_EMPTY|The title of the article is empty|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|PHOTO_INVALID|Photo invalid|
+|400|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|RESULT_TYPE_INVALID|Result type invalid|
+|400|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
+|400|START_PARAM_INVALID|Start parameter invalid|
+|403|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v104/methods/messages_setInlineGameScore.md b/old_docs/API_docs_v104/methods/messages_setInlineGameScore.md
index 5eeb1540..62b163d5 100644
--- a/old_docs/API_docs_v104/methods/messages_setInlineGameScore.md
+++ b/old_docs/API_docs_v104/methods/messages_setInlineGameScore.md
@@ -46,11 +46,11 @@ Or, if you're into Lua:
Bool = messages.setInlineGameScore({edit_message=Bool, force=Bool, id=InputBotInlineMessageID, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v104/methods/messages_setTyping.md b/old_docs/API_docs_v104/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v104/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v104/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v104/methods/messages_startBot.md b/old_docs/API_docs_v104/methods/messages_startBot.md
index aa2b2d00..4bf12aa6 100644
--- a/old_docs/API_docs_v104/methods/messages_startBot.md
+++ b/old_docs/API_docs_v104/methods/messages_startBot.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = messages.startBot({bot=InputUser, peer=InputPeer, start_param='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INVALID|This is not a valid bot|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|START_PARAM_EMPTY|The start parameter is empty|
-|START_PARAM_INVALID|Start parameter invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INVALID|This is not a valid bot|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|START_PARAM_EMPTY|The start parameter is empty|
+|400|START_PARAM_INVALID|Start parameter invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_toggleDialogPin.md b/old_docs/API_docs_v104/methods/messages_toggleDialogPin.md
index 22c6d15d..ff46ef21 100644
--- a/old_docs/API_docs_v104/methods/messages_toggleDialogPin.md
+++ b/old_docs/API_docs_v104/methods/messages_toggleDialogPin.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.toggleDialogPin({pinned=Bool, peer=InputDialogPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_uninstallStickerSet.md b/old_docs/API_docs_v104/methods/messages_uninstallStickerSet.md
index 59abc510..6b7a2006 100644
--- a/old_docs/API_docs_v104/methods/messages_uninstallStickerSet.md
+++ b/old_docs/API_docs_v104/methods/messages_uninstallStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.uninstallStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v104/methods/messages_uploadMedia.md b/old_docs/API_docs_v104/methods/messages_uploadMedia.md
index afc806fe..09fc074c 100644
--- a/old_docs/API_docs_v104/methods/messages_uploadMedia.md
+++ b/old_docs/API_docs_v104/methods/messages_uploadMedia.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
MessageMedia = messages.uploadMedia({peer=InputPeer, media=InputMedia, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v104/methods/payments_getPaymentForm.md b/old_docs/API_docs_v104/methods/payments_getPaymentForm.md
index e8e04f37..4c28121f 100644
--- a/old_docs/API_docs_v104/methods/payments_getPaymentForm.md
+++ b/old_docs/API_docs_v104/methods/payments_getPaymentForm.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentForm = payments.getPaymentForm({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v104/methods/payments_getPaymentReceipt.md b/old_docs/API_docs_v104/methods/payments_getPaymentReceipt.md
index acb1c209..0e2f76a8 100644
--- a/old_docs/API_docs_v104/methods/payments_getPaymentReceipt.md
+++ b/old_docs/API_docs_v104/methods/payments_getPaymentReceipt.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentReceipt = payments.getPaymentReceipt({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v104/methods/payments_sendPaymentForm.md b/old_docs/API_docs_v104/methods/payments_sendPaymentForm.md
index b8fa905d..1910ede8 100644
--- a/old_docs/API_docs_v104/methods/payments_sendPaymentForm.md
+++ b/old_docs/API_docs_v104/methods/payments_sendPaymentForm.md
@@ -45,10 +45,10 @@ Or, if you're into Lua:
payments_PaymentResult = payments.sendPaymentForm({msg_id=int, requested_info_id='string', shipping_option_id='string', credentials=InputPaymentCredentials, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v104/methods/payments_validateRequestedInfo.md b/old_docs/API_docs_v104/methods/payments_validateRequestedInfo.md
index 3b9da7e6..f18e1660 100644
--- a/old_docs/API_docs_v104/methods/payments_validateRequestedInfo.md
+++ b/old_docs/API_docs_v104/methods/payments_validateRequestedInfo.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
payments_ValidatedRequestedInfo = payments.validateRequestedInfo({save=Bool, msg_id=int, info=PaymentRequestedInfo, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v104/methods/phone_acceptCall.md b/old_docs/API_docs_v104/methods/phone_acceptCall.md
index b75ac65b..f5c58f01 100644
--- a/old_docs/API_docs_v104/methods/phone_acceptCall.md
+++ b/old_docs/API_docs_v104/methods/phone_acceptCall.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->acceptCall(['peer' => InputPhoneCall, 'g_b' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.acceptCall({peer=InputPhoneCall, g_b='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
diff --git a/old_docs/API_docs_v104/methods/phone_confirmCall.md b/old_docs/API_docs_v104/methods/phone_confirmCall.md
index 1a75563d..468307cc 100644
--- a/old_docs/API_docs_v104/methods/phone_confirmCall.md
+++ b/old_docs/API_docs_v104/methods/phone_confirmCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->confirmCall(['peer' => InputPhoneCall, 'g_a' => 'bytes', 'key_fingerprint' => long, 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.confirmCall({peer=InputPhoneCall, g_a='bytes', key_fingerprint=long, protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v104/methods/phone_discardCall.md b/old_docs/API_docs_v104/methods/phone_discardCall.md
index e50456eb..b4fec97a 100644
--- a/old_docs/API_docs_v104/methods/phone_discardCall.md
+++ b/old_docs/API_docs_v104/methods/phone_discardCall.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|video|[Bool](../types/Bool.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Optional|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|duration|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|reason|[PhoneCallDiscardReason](../types/PhoneCallDiscardReason.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|connection\_id|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [Updates](../types/Updates.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Updates = $MadelineProto->phone->discardCall(['video' => Bool, 'peer' => InputPhoneCall, 'duration' => int, 'reason' => PhoneCallDiscardReason, 'connection_id' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Updates = phone.discardCall({video=Bool, peer=InputPhoneCall, duration=int, reason=PhoneCallDiscardReason, connection_id=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v104/methods/phone_receivedCall.md b/old_docs/API_docs_v104/methods/phone_receivedCall.md
index c43bc8ac..6091424b 100644
--- a/old_docs/API_docs_v104/methods/phone_receivedCall.md
+++ b/old_docs/API_docs_v104/methods/phone_receivedCall.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Bool = phone.receivedCall({peer=InputPhoneCall, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_ALREADY_DECLINED|The call was already declined|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v104/methods/phone_requestCall.md b/old_docs/API_docs_v104/methods/phone_requestCall.md
index 9b8df564..e3894214 100644
--- a/old_docs/API_docs_v104/methods/phone_requestCall.md
+++ b/old_docs/API_docs_v104/methods/phone_requestCall.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|video|[Bool](../types/Bool.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Optional|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Optional|
+|g\_a\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->requestCall(['video' => Bool, 'user_id' => InputUser, 'g_a_hash' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.requestCall({video=Bool, user_id=InputUser, g_a_hash='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
+|400|PARTICIPANT_VERSION_OUTDATED|The other participant does not use an up to date telegram client with support for calls|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|403|USER_IS_BLOCKED|You were blocked by this user|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v104/methods/phone_saveCallDebug.md b/old_docs/API_docs_v104/methods/phone_saveCallDebug.md
index 8acbc353..1e793c05 100644
--- a/old_docs/API_docs_v104/methods/phone_saveCallDebug.md
+++ b/old_docs/API_docs_v104/methods/phone_saveCallDebug.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = phone.saveCallDebug({peer=InputPhoneCall, debug=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
-|DATA_JSON_INVALID|The provided JSON data is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|DATA_JSON_INVALID|The provided JSON data is invalid|
diff --git a/old_docs/API_docs_v104/methods/phone_setCallRating.md b/old_docs/API_docs_v104/methods/phone_setCallRating.md
index 5977c943..df40c478 100644
--- a/old_docs/API_docs_v104/methods/phone_setCallRating.md
+++ b/old_docs/API_docs_v104/methods/phone_setCallRating.md
@@ -45,10 +45,10 @@ Or, if you're into Lua:
Updates = phone.setCallRating({user_initiative=Bool, peer=InputPhoneCall, rating=int, comment='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v104/methods/photos_getUserPhotos.md b/old_docs/API_docs_v104/methods/photos_getUserPhotos.md
index 57f5772b..a01f3180 100644
--- a/old_docs/API_docs_v104/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v104/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v104/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v104/methods/photos_updateProfilePhoto.md
index cca2fe30..f7c91ec6 100644
--- a/old_docs/API_docs_v104/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v104/methods/photos_updateProfilePhoto.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v104/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v104/methods/photos_uploadProfilePhoto.md
index 457bade8..badde2de 100644
--- a/old_docs/API_docs_v104/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v104/methods/photos_uploadProfilePhoto.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v104/methods/stickers_addStickerToSet.md b/old_docs/API_docs_v104/methods/stickers_addStickerToSet.md
index 78e8437c..b1fa2aad 100644
--- a/old_docs/API_docs_v104/methods/stickers_addStickerToSet.md
+++ b/old_docs/API_docs_v104/methods/stickers_addStickerToSet.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.addStickerToSet({stickerset=InputStickerSet, sticker=InputStickerSetItem, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v104/methods/stickers_changeStickerPosition.md b/old_docs/API_docs_v104/methods/stickers_changeStickerPosition.md
index cddc1cbb..98dde67e 100644
--- a/old_docs/API_docs_v104/methods/stickers_changeStickerPosition.md
+++ b/old_docs/API_docs_v104/methods/stickers_changeStickerPosition.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.changeStickerPosition({sticker=InputDocument, position=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/old_docs/API_docs_v104/methods/stickers_createStickerSet.md b/old_docs/API_docs_v104/methods/stickers_createStickerSet.md
index 41e4ad11..741e0ad6 100644
--- a/old_docs/API_docs_v104/methods/stickers_createStickerSet.md
+++ b/old_docs/API_docs_v104/methods/stickers_createStickerSet.md
@@ -46,18 +46,18 @@ Or, if you're into Lua:
messages_StickerSet = stickers.createStickerSet({masks=Bool, user_id=InputUser, title='string', short_name='string', stickers={InputStickerSetItem}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|PACK_SHORT_NAME_INVALID|Short pack name invalid|
-|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|STICKER_EMOJI_INVALID|Sticker emoji invalid|
-|STICKER_FILE_INVALID|Sticker file invalid|
-|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
-|STICKERS_EMPTY|No sticker provided|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|PACK_SHORT_NAME_INVALID|Short pack name invalid|
+|400|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|STICKER_EMOJI_INVALID|Sticker emoji invalid|
+|400|STICKER_FILE_INVALID|Sticker file invalid|
+|400|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
+|400|STICKERS_EMPTY|No sticker provided|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v104/methods/stickers_removeStickerFromSet.md b/old_docs/API_docs_v104/methods/stickers_removeStickerFromSet.md
index ea4621f2..d1fc4339 100644
--- a/old_docs/API_docs_v104/methods/stickers_removeStickerFromSet.md
+++ b/old_docs/API_docs_v104/methods/stickers_removeStickerFromSet.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.removeStickerFromSet({sticker=InputDocument, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/old_docs/API_docs_v104/methods/updates_getChannelDifference.md b/old_docs/API_docs_v104/methods/updates_getChannelDifference.md
index 6fa79529..9735c14a 100644
--- a/old_docs/API_docs_v104/methods/updates_getChannelDifference.md
+++ b/old_docs/API_docs_v104/methods/updates_getChannelDifference.md
@@ -7,8 +7,56 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|force|[Bool](../types/Bool.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|filter|[ChannelMessagesFilter](../types/ChannelMessagesFilter.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_ChannelDifference](../types/updates_ChannelDifference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_ChannelDifference = $MadelineProto->updates->getChannelDifference(['force' => Bool, 'channel' => InputChannel, 'filter' => ChannelMessagesFilter, 'pts' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_ChannelDifference = updates.getChannelDifference({force=Bool, channel=InputChannel, filter=ChannelMessagesFilter, pts=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|400|RANGES_INVALID|Invalid range provided|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v104/methods/updates_getDifference.md b/old_docs/API_docs_v104/methods/updates_getDifference.md
index 33e7d7f2..bcfac4e2 100644
--- a/old_docs/API_docs_v104/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v104/methods/updates_getDifference.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|pts\_total\_limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'pts_total_limit' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, pts_total_limit=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v104/methods/updates_getState.md b/old_docs/API_docs_v104/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v104/methods/updates_getState.md
+++ b/old_docs/API_docs_v104/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v104/methods/upload_getCdnFile.md b/old_docs/API_docs_v104/methods/upload_getCdnFile.md
index 5e5b3f43..be9ad311 100644
--- a/old_docs/API_docs_v104/methods/upload_getCdnFile.md
+++ b/old_docs/API_docs_v104/methods/upload_getCdnFile.md
@@ -7,8 +7,40 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_CdnFile](../types/upload_CdnFile.md)
+
+### Can bots use this method: **NO**
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_CdnFile = $MadelineProto->upload->getCdnFile(['file_token' => 'bytes', 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_CdnFile = upload.getCdnFile({file_token='bytes', offset=int, limit=int, })
+```
+
diff --git a/old_docs/API_docs_v104/methods/upload_getCdnFileHashes.md b/old_docs/API_docs_v104/methods/upload_getCdnFileHashes.md
index ea6a8e75..d957578e 100644
--- a/old_docs/API_docs_v104/methods/upload_getCdnFileHashes.md
+++ b/old_docs/API_docs_v104/methods/upload_getCdnFileHashes.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->getCdnFileHashes(['file_token' => 'bytes', 'offset' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.getCdnFileHashes({file_token='bytes', offset=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/old_docs/API_docs_v104/methods/upload_getFile.md b/old_docs/API_docs_v104/methods/upload_getFile.md
index c72e6090..3c0c48f8 100644
--- a/old_docs/API_docs_v104/methods/upload_getFile.md
+++ b/old_docs/API_docs_v104/methods/upload_getFile.md
@@ -7,8 +7,54 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|precise|[Bool](../types/Bool.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Optional|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['precise' => Bool, 'location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({precise=Bool, location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v104/methods/upload_getFileHashes.md b/old_docs/API_docs_v104/methods/upload_getFileHashes.md
index debeb60d..e03dd5c5 100644
--- a/old_docs/API_docs_v104/methods/upload_getFileHashes.md
+++ b/old_docs/API_docs_v104/methods/upload_getFileHashes.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+Get file hashes
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | The file | Yes|
+|offset|[int](../types/int.md) | Offset | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->getFileHashes(['location' => InputFileLocation, 'offset' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.getFileHashes({location=InputFileLocation, offset=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LOCATION_INVALID|The provided location is invalid|
diff --git a/old_docs/API_docs_v104/methods/upload_getWebFile.md b/old_docs/API_docs_v104/methods/upload_getWebFile.md
index 21179a66..7b63f96c 100644
--- a/old_docs/API_docs_v104/methods/upload_getWebFile.md
+++ b/old_docs/API_docs_v104/methods/upload_getWebFile.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
upload_WebFile = upload.getWebFile({location=InputWebFileLocation, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LOCATION_INVALID|The provided location is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LOCATION_INVALID|The provided location is invalid|
diff --git a/old_docs/API_docs_v104/methods/upload_reuploadCdnFile.md b/old_docs/API_docs_v104/methods/upload_reuploadCdnFile.md
index cc20d5e3..f531557c 100644
--- a/old_docs/API_docs_v104/methods/upload_reuploadCdnFile.md
+++ b/old_docs/API_docs_v104/methods/upload_reuploadCdnFile.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|request\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->reuploadCdnFile(['file_token' => 'bytes', 'request_token' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.reuploadCdnFile({file_token='bytes', request_token='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/old_docs/API_docs_v104/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v104/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v104/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v104/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v104/methods/upload_saveFilePart.md b/old_docs/API_docs_v104/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v104/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v104/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v104/methods/users_getFullUser.md b/old_docs/API_docs_v104/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v104/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v104/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v104/methods/users_getUsers.md b/old_docs/API_docs_v104/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v104/methods/users_getUsers.md
+++ b/old_docs/API_docs_v104/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v104/methods/users_setSecureValueErrors.md b/old_docs/API_docs_v104/methods/users_setSecureValueErrors.md
index 40e398ab..661137fb 100644
--- a/old_docs/API_docs_v104/methods/users_setSecureValueErrors.md
+++ b/old_docs/API_docs_v104/methods/users_setSecureValueErrors.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = users.setSecureValueErrors({id=InputUser, errors={SecureValueError}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v18/methods/README.md b/old_docs/API_docs_v18/methods/README.md
index 9a93cad1..a161eab6 100644
--- a/old_docs/API_docs_v18/methods/README.md
+++ b/old_docs/API_docs_v18/methods/README.md
@@ -30,141 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add phone number as contact: contacts.importContacts
-
-* Block a user: contacts.block
-
-* Change notification settings: account.updateNotifySettings
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if this phone number is registered on telegram: auth.checkPhone
-
-* Check if this username is available: account.checkUsername
-
-* Create a chat (not supergroup): messages.createChat
-
-* Delete a contact: contacts.deleteContact
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete chat history: messages.deleteHistory
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Export contact as card: contacts.exportCard
-
-* Forward message: messages.forwardMessage
-
-* Forward messages: messages.forwardMessages
-
-* Get all contacts: contacts.getContacts
-
-* Get blocked users: contacts.getBlocked
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get invitation text: help.getInviteText
-
-* Get messages: messages.getMessages
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get previous messages of a group: messages.getHistory
-
-* Get server configuration: help.getConfig
-
-* Get suggested contacts: contacts.getSuggested
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Import card as contact: contacts.importCard
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Invite friends to telegram!: auth.sendInvites
-
-* Invoke this method with layer 18: invokeWithLayer18
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Register device for push notifications: account.registerDevice
-
-* Report a peer for spam: messages.reportSpam
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Search contacts: contacts.search
-
-* Search peers or messages: messages.search
-
-* Send SMS verification code: auth.sendSms
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message to all users in the chat list: messages.sendBroadcast
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Send verification phone call: auth.sendCall
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update profile info: account.updateProfile
-
-* Update this user's username: account.updateUsername
-
-* Upload profile photo: photos.uploadProfilePhoto
-
diff --git a/old_docs/API_docs_v18/methods/account_checkUsername.md b/old_docs/API_docs_v18/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v18/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v18/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v18/methods/account_getNotifySettings.md b/old_docs/API_docs_v18/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v18/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v18/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v18/methods/account_registerDevice.md b/old_docs/API_docs_v18/methods/account_registerDevice.md
index ab5a56a6..908977a3 100644
--- a/old_docs/API_docs_v18/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v18/methods/account_registerDevice.md
@@ -48,10 +48,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({token_type=int, token='string', device_model='string', system_version='string', app_version='string', app_sandbox=Bool, lang_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v18/methods/account_unregisterDevice.md b/old_docs/API_docs_v18/methods/account_unregisterDevice.md
index 589f48b0..a184da43 100644
--- a/old_docs/API_docs_v18/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v18/methods/account_unregisterDevice.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v18/methods/account_updateNotifySettings.md b/old_docs/API_docs_v18/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v18/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v18/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v18/methods/account_updateProfile.md b/old_docs/API_docs_v18/methods/account_updateProfile.md
index 486f63bc..33423686 100644
--- a/old_docs/API_docs_v18/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v18/methods/account_updateProfile.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v18/methods/account_updateStatus.md b/old_docs/API_docs_v18/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v18/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v18/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v18/methods/account_updateUsername.md b/old_docs/API_docs_v18/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v18/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v18/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v18/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v18/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v18/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v18/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v18/methods/auth_checkPhone.md b/old_docs/API_docs_v18/methods/auth_checkPhone.md
index f3e32365..e974ce7f 100644
--- a/old_docs/API_docs_v18/methods/auth_checkPhone.md
+++ b/old_docs/API_docs_v18/methods/auth_checkPhone.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
auth_CheckedPhone = auth.checkPhone({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v18/methods/auth_exportAuthorization.md b/old_docs/API_docs_v18/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v18/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v18/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v18/methods/auth_importAuthorization.md b/old_docs/API_docs_v18/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v18/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v18/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v18/methods/auth_logOut.md b/old_docs/API_docs_v18/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v18/methods/auth_logOut.md
+++ b/old_docs/API_docs_v18/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v18/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v18/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v18/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v18/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v18/methods/auth_sendCode.md b/old_docs/API_docs_v18/methods/auth_sendCode.md
index 9afebb55..4e856d6a 100644
--- a/old_docs/API_docs_v18/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v18/methods/auth_sendCode.md
@@ -7,8 +7,59 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|sms\_type|[int](../types/int.md) | You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+|lang\_code|[string](../types/string.md) | You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['phone_number' => 'string', 'sms_type' => int, 'api_id' => int, 'api_hash' => 'string', 'lang_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({phone_number='string', sms_type=int, api_id=int, api_hash='string', lang_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v18/methods/auth_sendInvites.md b/old_docs/API_docs_v18/methods/auth_sendInvites.md
index e10c1109..4c11023e 100644
--- a/old_docs/API_docs_v18/methods/auth_sendInvites.md
+++ b/old_docs/API_docs_v18/methods/auth_sendInvites.md
@@ -49,10 +49,10 @@ Bool = auth.sendInvites({phone_numbers={'string'}, message='string', })
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_EMPTY|The provided message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_EMPTY|The provided message is empty|
diff --git a/old_docs/API_docs_v18/methods/auth_signIn.md b/old_docs/API_docs_v18/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v18/methods/auth_signIn.md
+++ b/old_docs/API_docs_v18/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v18/methods/auth_signUp.md b/old_docs/API_docs_v18/methods/auth_signUp.md
index 15960145..31154486 100644
--- a/old_docs/API_docs_v18/methods/auth_signUp.md
+++ b/old_docs/API_docs_v18/methods/auth_signUp.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', phone_code='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v18/methods/contacts_block.md b/old_docs/API_docs_v18/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v18/methods/contacts_block.md
+++ b/old_docs/API_docs_v18/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v18/methods/contacts_deleteContact.md b/old_docs/API_docs_v18/methods/contacts_deleteContact.md
index ba9569e4..a9321d64 100644
--- a/old_docs/API_docs_v18/methods/contacts_deleteContact.md
+++ b/old_docs/API_docs_v18/methods/contacts_deleteContact.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
contacts_Link = contacts.deleteContact({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v18/methods/contacts_deleteContacts.md b/old_docs/API_docs_v18/methods/contacts_deleteContacts.md
index bfc91fdd..3c8e90f0 100644
--- a/old_docs/API_docs_v18/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v18/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v18/methods/contacts_getStatuses.md b/old_docs/API_docs_v18/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v18/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v18/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v18/methods/contacts_importCard.md b/old_docs/API_docs_v18/methods/contacts_importCard.md
index 15addde1..ed3d17fe 100644
--- a/old_docs/API_docs_v18/methods/contacts_importCard.md
+++ b/old_docs/API_docs_v18/methods/contacts_importCard.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
User = contacts.importCard({export_card={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|EXPORT_CARD_INVALID|Provided card is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EXPORT_CARD_INVALID|Provided card is invalid|
diff --git a/old_docs/API_docs_v18/methods/contacts_search.md b/old_docs/API_docs_v18/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v18/methods/contacts_search.md
+++ b/old_docs/API_docs_v18/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v18/methods/contacts_unblock.md b/old_docs/API_docs_v18/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v18/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v18/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v18/methods/help_getConfig.md b/old_docs/API_docs_v18/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v18/methods/help_getConfig.md
+++ b/old_docs/API_docs_v18/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v18/methods/initConnection.md b/old_docs/API_docs_v18/methods/initConnection.md
index 659f4e6b..a41f0c4d 100644
--- a/old_docs/API_docs_v18/methods/initConnection.md
+++ b/old_docs/API_docs_v18/methods/initConnection.md
@@ -47,11 +47,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', lang_code='string', query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v18/methods/messages_acceptEncryption.md b/old_docs/API_docs_v18/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v18/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v18/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v18/methods/messages_addChatUser.md b/old_docs/API_docs_v18/methods/messages_addChatUser.md
index 512f9662..af1a24a9 100644
--- a/old_docs/API_docs_v18/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v18/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
messages_StatedMessage = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v18/methods/messages_createChat.md b/old_docs/API_docs_v18/methods/messages_createChat.md
index fa7547f0..9949b9da 100644
--- a/old_docs/API_docs_v18/methods/messages_createChat.md
+++ b/old_docs/API_docs_v18/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StatedMessage = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v18/methods/messages_deleteChatUser.md b/old_docs/API_docs_v18/methods/messages_deleteChatUser.md
index bc6c52dc..1921e0c0 100644
--- a/old_docs/API_docs_v18/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v18/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_StatedMessage = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v18/methods/messages_deleteHistory.md b/old_docs/API_docs_v18/methods/messages_deleteHistory.md
index b67a784a..0dfbcc70 100644
--- a/old_docs/API_docs_v18/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v18/methods/messages_deleteHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({peer=InputPeer, offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v18/methods/messages_deleteMessages.md b/old_docs/API_docs_v18/methods/messages_deleteMessages.md
index abced7a3..1584c2b8 100644
--- a/old_docs/API_docs_v18/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v18/methods/messages_deleteMessages.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Vector_of_int = messages.deleteMessages({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v18/methods/messages_discardEncryption.md b/old_docs/API_docs_v18/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v18/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v18/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v18/methods/messages_editChatPhoto.md b/old_docs/API_docs_v18/methods/messages_editChatPhoto.md
index e8c0dbb7..531832e2 100644
--- a/old_docs/API_docs_v18/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v18/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
messages_StatedMessage = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v18/methods/messages_editChatTitle.md b/old_docs/API_docs_v18/methods/messages_editChatTitle.md
index 5e3f003c..7c52520f 100644
--- a/old_docs/API_docs_v18/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v18/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StatedMessage = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v18/methods/messages_forwardMessage.md b/old_docs/API_docs_v18/methods/messages_forwardMessage.md
index 9e63ea02..d3324034 100644
--- a/old_docs/API_docs_v18/methods/messages_forwardMessage.md
+++ b/old_docs/API_docs_v18/methods/messages_forwardMessage.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
messages_StatedMessage = messages.forwardMessage({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|YOU_BLOCKED_USER|You blocked this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|YOU_BLOCKED_USER|You blocked this user|
diff --git a/old_docs/API_docs_v18/methods/messages_forwardMessages.md b/old_docs/API_docs_v18/methods/messages_forwardMessages.md
index f168b487..04bd7f4d 100644
--- a/old_docs/API_docs_v18/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v18/methods/messages_forwardMessages.md
@@ -43,29 +43,29 @@ Or, if you're into Lua:
messages_StatedMessages = messages.forwardMessages({peer=InputPeer, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v18/methods/messages_getChats.md b/old_docs/API_docs_v18/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/old_docs/API_docs_v18/methods/messages_getChats.md
+++ b/old_docs/API_docs_v18/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v18/methods/messages_getDhConfig.md b/old_docs/API_docs_v18/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v18/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v18/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v18/methods/messages_getDialogs.md b/old_docs/API_docs_v18/methods/messages_getDialogs.md
index fc46f52a..89f3a989 100644
--- a/old_docs/API_docs_v18/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v18/methods/messages_getDialogs.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({offset=int, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v18/methods/messages_getFullChat.md b/old_docs/API_docs_v18/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v18/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v18/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v18/methods/messages_getHistory.md b/old_docs/API_docs_v18/methods/messages_getHistory.md
index 8d242e50..5801caa1 100644
--- a/old_docs/API_docs_v18/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v18/methods/messages_getHistory.md
@@ -45,16 +45,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset=int, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v18/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v18/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v18/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v18/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v18/methods/messages_readHistory.md b/old_docs/API_docs_v18/methods/messages_readHistory.md
index 4c9168db..e7232106 100644
--- a/old_docs/API_docs_v18/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v18/methods/messages_readHistory.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.readHistory({peer=InputPeer, max_id=int, offset=int, read_contents=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v18/methods/messages_receivedQueue.md b/old_docs/API_docs_v18/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v18/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v18/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v18/methods/messages_reportSpam.md b/old_docs/API_docs_v18/methods/messages_reportSpam.md
index e92fba13..dc256e55 100644
--- a/old_docs/API_docs_v18/methods/messages_reportSpam.md
+++ b/old_docs/API_docs_v18/methods/messages_reportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v18/methods/messages_requestEncryption.md b/old_docs/API_docs_v18/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v18/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v18/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v18/methods/messages_search.md b/old_docs/API_docs_v18/methods/messages_search.md
index 5f5480cc..dc1b6934 100644
--- a/old_docs/API_docs_v18/methods/messages_search.md
+++ b/old_docs/API_docs_v18/methods/messages_search.md
@@ -49,16 +49,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({peer=InputPeer, q='string', filter=MessagesFilter, min_date=int, max_date=int, offset=int, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v18/methods/messages_sendEncrypted.md b/old_docs/API_docs_v18/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v18/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v18/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v18/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v18/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v18/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v18/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v18/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v18/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v18/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v18/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v18/methods/messages_sendMedia.md b/old_docs/API_docs_v18/methods/messages_sendMedia.md
index cc6aba79..0eda60e1 100644
--- a/old_docs/API_docs_v18/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v18/methods/messages_sendMedia.md
@@ -43,31 +43,31 @@ Or, if you're into Lua:
messages_StatedMessage = messages.sendMedia({peer=InputPeer, media=InputMedia, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v18/methods/messages_sendMessage.md b/old_docs/API_docs_v18/methods/messages_sendMessage.md
index afa352d9..746350ea 100644
--- a/old_docs/API_docs_v18/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v18/methods/messages_sendMessage.md
@@ -49,31 +49,31 @@ messages_SentMessage = messages.sendMessage({peer=InputPeer, message='string', }
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentMessage](../types/messages_SentMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v18/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v18/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v18/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v18/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v18/methods/messages_setTyping.md b/old_docs/API_docs_v18/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v18/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v18/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v18/methods/photos_getUserPhotos.md b/old_docs/API_docs_v18/methods/photos_getUserPhotos.md
index 908bc336..7e4583e7 100644
--- a/old_docs/API_docs_v18/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v18/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v18/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v18/methods/photos_updateProfilePhoto.md
index 53d0b12f..db7fe164 100644
--- a/old_docs/API_docs_v18/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v18/methods/photos_updateProfilePhoto.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, crop=InputPhotoCrop, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v18/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v18/methods/photos_uploadProfilePhoto.md
index f140329e..10653c42 100644
--- a/old_docs/API_docs_v18/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v18/methods/photos_uploadProfilePhoto.md
@@ -45,13 +45,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, caption='string', geo_point=InputGeoPoint, crop=InputPhotoCrop, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v18/methods/updates_getDifference.md b/old_docs/API_docs_v18/methods/updates_getDifference.md
index 33e7d7f2..57ea6d99 100644
--- a/old_docs/API_docs_v18/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v18/methods/updates_getDifference.md
@@ -7,8 +7,54 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v18/methods/updates_getState.md b/old_docs/API_docs_v18/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v18/methods/updates_getState.md
+++ b/old_docs/API_docs_v18/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v18/methods/upload_getFile.md b/old_docs/API_docs_v18/methods/upload_getFile.md
index c72e6090..d8b433d6 100644
--- a/old_docs/API_docs_v18/methods/upload_getFile.md
+++ b/old_docs/API_docs_v18/methods/upload_getFile.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v18/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v18/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v18/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v18/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v18/methods/upload_saveFilePart.md b/old_docs/API_docs_v18/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v18/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v18/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v18/methods/users_getFullUser.md b/old_docs/API_docs_v18/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v18/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v18/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v18/methods/users_getUsers.md b/old_docs/API_docs_v18/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v18/methods/users_getUsers.md
+++ b/old_docs/API_docs_v18/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v23/methods/README.md b/old_docs/API_docs_v23/methods/README.md
index 8d459814..a161eab6 100644
--- a/old_docs/API_docs_v23/methods/README.md
+++ b/old_docs/API_docs_v23/methods/README.md
@@ -30,163 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add phone number as contact: contacts.importContacts
-
-* Block a user: contacts.block
-
-* Change notification settings: account.updateNotifySettings
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if this phone number is registered on telegram: auth.checkPhone
-
-* Check if this username is available: account.checkUsername
-
-* Create a chat (not supergroup): messages.createChat
-
-* Delete a contact: contacts.deleteContact
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete chat history: messages.deleteHistory
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete this account: account.deleteAccount
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Export contact as card: contacts.exportCard
-
-* Forward message: messages.forwardMessage
-
-* Forward messages: messages.forwardMessages
-
-* Get account TTL: account.getAccountTTL
-
-* Get all contacts: contacts.getContacts
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get blocked users: contacts.getBlocked
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get invitation text: help.getInviteText
-
-* Get messages: messages.getMessages
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get server configuration: help.getConfig
-
-* Get stickers: messages.getStickers
-
-* Get suggested contacts: contacts.getSuggested
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Import card as contact: contacts.importCard
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Invite friends to telegram!: auth.sendInvites
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Register device for push notifications: account.registerDevice
-
-* Report a peer for spam: messages.reportSpam
-
-* Report for spam: account.reportPeer
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Search contacts: contacts.search
-
-* Search peers or messages: messages.search
-
-* Send SMS verification code: auth.sendSms
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message to all users in the chat list: messages.sendBroadcast
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Send verification phone call: auth.sendCall
-
-* Set account TTL: account.setAccountTTL
-
-* Set privacy settings: account.setPrivacy
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update profile info: account.updateProfile
-
-* Update this user's username: account.updateUsername
-
-* Upload profile photo: photos.uploadProfilePhoto
-
diff --git a/old_docs/API_docs_v23/methods/account_changePhone.md b/old_docs/API_docs_v23/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/old_docs/API_docs_v23/methods/account_changePhone.md
+++ b/old_docs/API_docs_v23/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v23/methods/account_checkUsername.md b/old_docs/API_docs_v23/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v23/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v23/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v23/methods/account_getNotifySettings.md b/old_docs/API_docs_v23/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v23/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v23/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v23/methods/account_getPrivacy.md b/old_docs/API_docs_v23/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/old_docs/API_docs_v23/methods/account_getPrivacy.md
+++ b/old_docs/API_docs_v23/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v23/methods/account_registerDevice.md b/old_docs/API_docs_v23/methods/account_registerDevice.md
index ab5a56a6..908977a3 100644
--- a/old_docs/API_docs_v23/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v23/methods/account_registerDevice.md
@@ -48,10 +48,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({token_type=int, token='string', device_model='string', system_version='string', app_version='string', app_sandbox=Bool, lang_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v23/methods/account_reportPeer.md b/old_docs/API_docs_v23/methods/account_reportPeer.md
index a203c900..87b080eb 100644
--- a/old_docs/API_docs_v23/methods/account_reportPeer.md
+++ b/old_docs/API_docs_v23/methods/account_reportPeer.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.reportPeer({peer=InputPeer, reason=ReportReason, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v23/methods/account_sendChangePhoneCode.md b/old_docs/API_docs_v23/methods/account_sendChangePhoneCode.md
index c4bc0675..8537d9d9 100644
--- a/old_docs/API_docs_v23/methods/account_sendChangePhoneCode.md
+++ b/old_docs/API_docs_v23/methods/account_sendChangePhoneCode.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_SentChangePhoneCode = account.sendChangePhoneCode({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v23/methods/account_setAccountTTL.md b/old_docs/API_docs_v23/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/old_docs/API_docs_v23/methods/account_setAccountTTL.md
+++ b/old_docs/API_docs_v23/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/old_docs/API_docs_v23/methods/account_setPrivacy.md b/old_docs/API_docs_v23/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/old_docs/API_docs_v23/methods/account_setPrivacy.md
+++ b/old_docs/API_docs_v23/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v23/methods/account_unregisterDevice.md b/old_docs/API_docs_v23/methods/account_unregisterDevice.md
index 589f48b0..a184da43 100644
--- a/old_docs/API_docs_v23/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v23/methods/account_unregisterDevice.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v23/methods/account_updateNotifySettings.md b/old_docs/API_docs_v23/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v23/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v23/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v23/methods/account_updateProfile.md b/old_docs/API_docs_v23/methods/account_updateProfile.md
index 486f63bc..33423686 100644
--- a/old_docs/API_docs_v23/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v23/methods/account_updateProfile.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v23/methods/account_updateStatus.md b/old_docs/API_docs_v23/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v23/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v23/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v23/methods/account_updateUsername.md b/old_docs/API_docs_v23/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v23/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v23/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v23/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v23/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v23/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v23/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v23/methods/auth_checkPhone.md b/old_docs/API_docs_v23/methods/auth_checkPhone.md
index f3e32365..e974ce7f 100644
--- a/old_docs/API_docs_v23/methods/auth_checkPhone.md
+++ b/old_docs/API_docs_v23/methods/auth_checkPhone.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
auth_CheckedPhone = auth.checkPhone({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v23/methods/auth_exportAuthorization.md b/old_docs/API_docs_v23/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v23/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v23/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v23/methods/auth_importAuthorization.md b/old_docs/API_docs_v23/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v23/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v23/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v23/methods/auth_logOut.md b/old_docs/API_docs_v23/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v23/methods/auth_logOut.md
+++ b/old_docs/API_docs_v23/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v23/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v23/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v23/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v23/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v23/methods/auth_sendCode.md b/old_docs/API_docs_v23/methods/auth_sendCode.md
index 9afebb55..4e856d6a 100644
--- a/old_docs/API_docs_v23/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v23/methods/auth_sendCode.md
@@ -7,8 +7,59 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|sms\_type|[int](../types/int.md) | You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+|lang\_code|[string](../types/string.md) | You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['phone_number' => 'string', 'sms_type' => int, 'api_id' => int, 'api_hash' => 'string', 'lang_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({phone_number='string', sms_type=int, api_id=int, api_hash='string', lang_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v23/methods/auth_sendInvites.md b/old_docs/API_docs_v23/methods/auth_sendInvites.md
index e10c1109..4c11023e 100644
--- a/old_docs/API_docs_v23/methods/auth_sendInvites.md
+++ b/old_docs/API_docs_v23/methods/auth_sendInvites.md
@@ -49,10 +49,10 @@ Bool = auth.sendInvites({phone_numbers={'string'}, message='string', })
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_EMPTY|The provided message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_EMPTY|The provided message is empty|
diff --git a/old_docs/API_docs_v23/methods/auth_signIn.md b/old_docs/API_docs_v23/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v23/methods/auth_signIn.md
+++ b/old_docs/API_docs_v23/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v23/methods/auth_signUp.md b/old_docs/API_docs_v23/methods/auth_signUp.md
index 15960145..31154486 100644
--- a/old_docs/API_docs_v23/methods/auth_signUp.md
+++ b/old_docs/API_docs_v23/methods/auth_signUp.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', phone_code='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v23/methods/contacts_block.md b/old_docs/API_docs_v23/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v23/methods/contacts_block.md
+++ b/old_docs/API_docs_v23/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v23/methods/contacts_deleteContact.md b/old_docs/API_docs_v23/methods/contacts_deleteContact.md
index ba9569e4..a9321d64 100644
--- a/old_docs/API_docs_v23/methods/contacts_deleteContact.md
+++ b/old_docs/API_docs_v23/methods/contacts_deleteContact.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
contacts_Link = contacts.deleteContact({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v23/methods/contacts_deleteContacts.md b/old_docs/API_docs_v23/methods/contacts_deleteContacts.md
index bfc91fdd..3c8e90f0 100644
--- a/old_docs/API_docs_v23/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v23/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v23/methods/contacts_getStatuses.md b/old_docs/API_docs_v23/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v23/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v23/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v23/methods/contacts_importCard.md b/old_docs/API_docs_v23/methods/contacts_importCard.md
index 15addde1..ed3d17fe 100644
--- a/old_docs/API_docs_v23/methods/contacts_importCard.md
+++ b/old_docs/API_docs_v23/methods/contacts_importCard.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
User = contacts.importCard({export_card={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|EXPORT_CARD_INVALID|Provided card is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EXPORT_CARD_INVALID|Provided card is invalid|
diff --git a/old_docs/API_docs_v23/methods/contacts_resolveUsername.md b/old_docs/API_docs_v23/methods/contacts_resolveUsername.md
index fab56bb1..ade7ca48 100644
--- a/old_docs/API_docs_v23/methods/contacts_resolveUsername.md
+++ b/old_docs/API_docs_v23/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [User](../types/User.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$User = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+User = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v23/methods/contacts_search.md b/old_docs/API_docs_v23/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v23/methods/contacts_search.md
+++ b/old_docs/API_docs_v23/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v23/methods/contacts_unblock.md b/old_docs/API_docs_v23/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v23/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v23/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v23/methods/help_getConfig.md b/old_docs/API_docs_v23/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v23/methods/help_getConfig.md
+++ b/old_docs/API_docs_v23/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v23/methods/initConnection.md b/old_docs/API_docs_v23/methods/initConnection.md
index 659f4e6b..a41f0c4d 100644
--- a/old_docs/API_docs_v23/methods/initConnection.md
+++ b/old_docs/API_docs_v23/methods/initConnection.md
@@ -47,11 +47,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', lang_code='string', query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v23/methods/invokeWithLayer.md b/old_docs/API_docs_v23/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/old_docs/API_docs_v23/methods/invokeWithLayer.md
+++ b/old_docs/API_docs_v23/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v23/methods/messages_acceptEncryption.md b/old_docs/API_docs_v23/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v23/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v23/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v23/methods/messages_addChatUser.md b/old_docs/API_docs_v23/methods/messages_addChatUser.md
index 512f9662..af1a24a9 100644
--- a/old_docs/API_docs_v23/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v23/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
messages_StatedMessage = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v23/methods/messages_createChat.md b/old_docs/API_docs_v23/methods/messages_createChat.md
index fa7547f0..9949b9da 100644
--- a/old_docs/API_docs_v23/methods/messages_createChat.md
+++ b/old_docs/API_docs_v23/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StatedMessage = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v23/methods/messages_deleteChatUser.md b/old_docs/API_docs_v23/methods/messages_deleteChatUser.md
index bc6c52dc..1921e0c0 100644
--- a/old_docs/API_docs_v23/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v23/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_StatedMessage = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v23/methods/messages_deleteHistory.md b/old_docs/API_docs_v23/methods/messages_deleteHistory.md
index b67a784a..0dfbcc70 100644
--- a/old_docs/API_docs_v23/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v23/methods/messages_deleteHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({peer=InputPeer, offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v23/methods/messages_deleteMessages.md b/old_docs/API_docs_v23/methods/messages_deleteMessages.md
index abced7a3..1584c2b8 100644
--- a/old_docs/API_docs_v23/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v23/methods/messages_deleteMessages.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Vector_of_int = messages.deleteMessages({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v23/methods/messages_discardEncryption.md b/old_docs/API_docs_v23/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v23/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v23/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v23/methods/messages_editChatPhoto.md b/old_docs/API_docs_v23/methods/messages_editChatPhoto.md
index e8c0dbb7..531832e2 100644
--- a/old_docs/API_docs_v23/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v23/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
messages_StatedMessage = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v23/methods/messages_editChatTitle.md b/old_docs/API_docs_v23/methods/messages_editChatTitle.md
index 5e3f003c..7c52520f 100644
--- a/old_docs/API_docs_v23/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v23/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StatedMessage = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v23/methods/messages_forwardMessage.md b/old_docs/API_docs_v23/methods/messages_forwardMessage.md
index 9e63ea02..d3324034 100644
--- a/old_docs/API_docs_v23/methods/messages_forwardMessage.md
+++ b/old_docs/API_docs_v23/methods/messages_forwardMessage.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
messages_StatedMessage = messages.forwardMessage({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|YOU_BLOCKED_USER|You blocked this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|YOU_BLOCKED_USER|You blocked this user|
diff --git a/old_docs/API_docs_v23/methods/messages_forwardMessages.md b/old_docs/API_docs_v23/methods/messages_forwardMessages.md
index f168b487..04bd7f4d 100644
--- a/old_docs/API_docs_v23/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v23/methods/messages_forwardMessages.md
@@ -43,29 +43,29 @@ Or, if you're into Lua:
messages_StatedMessages = messages.forwardMessages({peer=InputPeer, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v23/methods/messages_getChats.md b/old_docs/API_docs_v23/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/old_docs/API_docs_v23/methods/messages_getChats.md
+++ b/old_docs/API_docs_v23/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v23/methods/messages_getDhConfig.md b/old_docs/API_docs_v23/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v23/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v23/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v23/methods/messages_getDialogs.md b/old_docs/API_docs_v23/methods/messages_getDialogs.md
index fc46f52a..89f3a989 100644
--- a/old_docs/API_docs_v23/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v23/methods/messages_getDialogs.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({offset=int, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v23/methods/messages_getFullChat.md b/old_docs/API_docs_v23/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v23/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v23/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v23/methods/messages_getHistory.md b/old_docs/API_docs_v23/methods/messages_getHistory.md
index 8d242e50..5801caa1 100644
--- a/old_docs/API_docs_v23/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v23/methods/messages_getHistory.md
@@ -45,16 +45,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset=int, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v23/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v23/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v23/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v23/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v23/methods/messages_readHistory.md b/old_docs/API_docs_v23/methods/messages_readHistory.md
index 4c9168db..e7232106 100644
--- a/old_docs/API_docs_v23/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v23/methods/messages_readHistory.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.readHistory({peer=InputPeer, max_id=int, offset=int, read_contents=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v23/methods/messages_receivedQueue.md b/old_docs/API_docs_v23/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v23/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v23/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v23/methods/messages_reportSpam.md b/old_docs/API_docs_v23/methods/messages_reportSpam.md
index e92fba13..dc256e55 100644
--- a/old_docs/API_docs_v23/methods/messages_reportSpam.md
+++ b/old_docs/API_docs_v23/methods/messages_reportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v23/methods/messages_requestEncryption.md b/old_docs/API_docs_v23/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v23/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v23/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v23/methods/messages_search.md b/old_docs/API_docs_v23/methods/messages_search.md
index 5f5480cc..dc1b6934 100644
--- a/old_docs/API_docs_v23/methods/messages_search.md
+++ b/old_docs/API_docs_v23/methods/messages_search.md
@@ -49,16 +49,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({peer=InputPeer, q='string', filter=MessagesFilter, min_date=int, max_date=int, offset=int, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v23/methods/messages_sendEncrypted.md b/old_docs/API_docs_v23/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v23/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v23/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v23/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v23/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v23/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v23/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v23/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v23/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v23/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v23/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v23/methods/messages_sendMedia.md b/old_docs/API_docs_v23/methods/messages_sendMedia.md
index cc6aba79..0eda60e1 100644
--- a/old_docs/API_docs_v23/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v23/methods/messages_sendMedia.md
@@ -43,31 +43,31 @@ Or, if you're into Lua:
messages_StatedMessage = messages.sendMedia({peer=InputPeer, media=InputMedia, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v23/methods/messages_sendMessage.md b/old_docs/API_docs_v23/methods/messages_sendMessage.md
index afa352d9..746350ea 100644
--- a/old_docs/API_docs_v23/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v23/methods/messages_sendMessage.md
@@ -49,31 +49,31 @@ messages_SentMessage = messages.sendMessage({peer=InputPeer, message='string', }
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentMessage](../types/messages_SentMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v23/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v23/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v23/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v23/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v23/methods/messages_setTyping.md b/old_docs/API_docs_v23/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v23/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v23/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v23/methods/photos_getUserPhotos.md b/old_docs/API_docs_v23/methods/photos_getUserPhotos.md
index 908bc336..7e4583e7 100644
--- a/old_docs/API_docs_v23/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v23/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v23/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v23/methods/photos_updateProfilePhoto.md
index 53d0b12f..db7fe164 100644
--- a/old_docs/API_docs_v23/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v23/methods/photos_updateProfilePhoto.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, crop=InputPhotoCrop, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v23/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v23/methods/photos_uploadProfilePhoto.md
index f140329e..10653c42 100644
--- a/old_docs/API_docs_v23/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v23/methods/photos_uploadProfilePhoto.md
@@ -45,13 +45,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, caption='string', geo_point=InputGeoPoint, crop=InputPhotoCrop, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v23/methods/updates_getDifference.md b/old_docs/API_docs_v23/methods/updates_getDifference.md
index 33e7d7f2..57ea6d99 100644
--- a/old_docs/API_docs_v23/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v23/methods/updates_getDifference.md
@@ -7,8 +7,54 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v23/methods/updates_getState.md b/old_docs/API_docs_v23/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v23/methods/updates_getState.md
+++ b/old_docs/API_docs_v23/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v23/methods/upload_getFile.md b/old_docs/API_docs_v23/methods/upload_getFile.md
index c72e6090..d8b433d6 100644
--- a/old_docs/API_docs_v23/methods/upload_getFile.md
+++ b/old_docs/API_docs_v23/methods/upload_getFile.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v23/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v23/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v23/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v23/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v23/methods/upload_saveFilePart.md b/old_docs/API_docs_v23/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v23/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v23/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v23/methods/users_getFullUser.md b/old_docs/API_docs_v23/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v23/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v23/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v23/methods/users_getUsers.md b/old_docs/API_docs_v23/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v23/methods/users_getUsers.md
+++ b/old_docs/API_docs_v23/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v25/methods/README.md b/old_docs/API_docs_v25/methods/README.md
index 6af45958..a161eab6 100644
--- a/old_docs/API_docs_v25/methods/README.md
+++ b/old_docs/API_docs_v25/methods/README.md
@@ -30,187 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add phone number as contact: contacts.importContacts
-
-* Block a user: contacts.block
-
-* Change notification settings: account.updateNotifySettings
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if this phone number is registered on telegram: auth.checkPhone
-
-* Check if this username is available: account.checkUsername
-
-* Create a chat (not supergroup): messages.createChat
-
-* Create geochat: geochats.createGeoChat
-
-* Delete a contact: contacts.deleteContact
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete chat history: messages.deleteHistory
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete this account: account.deleteAccount
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Edit geochat photo: geochats.editChatPhoto
-
-* Edit geochat title: geochats.editChatTitle
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Export contact as card: contacts.exportCard
-
-* Forward message: messages.forwardMessage
-
-* Forward messages: messages.forwardMessages
-
-* Get account TTL: account.getAccountTTL
-
-* Get all contacts: contacts.getContacts
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get blocked users: contacts.getBlocked
-
-* Get full info about a geochat: geochats.getFullChat
-
-* Get geochat history: geochats.getHistory
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get invitation text: help.getInviteText
-
-* Get messages: messages.getMessages
-
-* Get nearby geochats: geochats.getLocated
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get recent geochats: geochats.getRecents
-
-* Get server configuration: help.getConfig
-
-* Get stickers: messages.getStickers
-
-* Get suggested contacts: contacts.getSuggested
-
-* Get the current password: account.getPassword
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Import card as contact: contacts.importCard
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Invite friends to telegram!: auth.sendInvites
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Join a geochat: geochats.checkin
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Register device for push notifications: account.registerDevice
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Search contacts: contacts.search
-
-* Search messages in geocha: geochats.search
-
-* Search peers or messages: messages.search
-
-* Send SMS verification code: auth.sendSms
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message to all users in the chat list: messages.sendBroadcast
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send media to geochat: geochats.sendMedia
-
-* Send message to geochat: geochats.sendMessage
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send typing notification to geochat: geochats.setTyping
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Send verification phone call: auth.sendCall
-
-* Set 2FA password: account.setPassword
-
-* Set account TTL: account.setAccountTTL
-
-* Set privacy settings: account.setPrivacy
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update profile info: account.updateProfile
-
-* Update this user's username: account.updateUsername
-
-* Upload profile photo: photos.uploadProfilePhoto
-
diff --git a/old_docs/API_docs_v25/methods/account_changePhone.md b/old_docs/API_docs_v25/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/old_docs/API_docs_v25/methods/account_changePhone.md
+++ b/old_docs/API_docs_v25/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v25/methods/account_checkUsername.md b/old_docs/API_docs_v25/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v25/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v25/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v25/methods/account_getNotifySettings.md b/old_docs/API_docs_v25/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v25/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v25/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v25/methods/account_getPrivacy.md b/old_docs/API_docs_v25/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/old_docs/API_docs_v25/methods/account_getPrivacy.md
+++ b/old_docs/API_docs_v25/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v25/methods/account_registerDevice.md b/old_docs/API_docs_v25/methods/account_registerDevice.md
index ab5a56a6..908977a3 100644
--- a/old_docs/API_docs_v25/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v25/methods/account_registerDevice.md
@@ -48,10 +48,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({token_type=int, token='string', device_model='string', system_version='string', app_version='string', app_sandbox=Bool, lang_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v25/methods/account_sendChangePhoneCode.md b/old_docs/API_docs_v25/methods/account_sendChangePhoneCode.md
index c4bc0675..8537d9d9 100644
--- a/old_docs/API_docs_v25/methods/account_sendChangePhoneCode.md
+++ b/old_docs/API_docs_v25/methods/account_sendChangePhoneCode.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_SentChangePhoneCode = account.sendChangePhoneCode({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v25/methods/account_setAccountTTL.md b/old_docs/API_docs_v25/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/old_docs/API_docs_v25/methods/account_setAccountTTL.md
+++ b/old_docs/API_docs_v25/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/old_docs/API_docs_v25/methods/account_setPrivacy.md b/old_docs/API_docs_v25/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/old_docs/API_docs_v25/methods/account_setPrivacy.md
+++ b/old_docs/API_docs_v25/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v25/methods/account_unregisterDevice.md b/old_docs/API_docs_v25/methods/account_unregisterDevice.md
index 589f48b0..a184da43 100644
--- a/old_docs/API_docs_v25/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v25/methods/account_unregisterDevice.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v25/methods/account_updateNotifySettings.md b/old_docs/API_docs_v25/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v25/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v25/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v25/methods/account_updateProfile.md b/old_docs/API_docs_v25/methods/account_updateProfile.md
index 486f63bc..33423686 100644
--- a/old_docs/API_docs_v25/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v25/methods/account_updateProfile.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v25/methods/account_updateStatus.md b/old_docs/API_docs_v25/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v25/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v25/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v25/methods/account_updateUsername.md b/old_docs/API_docs_v25/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v25/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v25/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v25/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v25/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v25/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v25/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v25/methods/auth_checkPassword.md b/old_docs/API_docs_v25/methods/auth_checkPassword.md
index 8d76c483..db65cb56 100644
--- a/old_docs/API_docs_v25/methods/auth_checkPassword.md
+++ b/old_docs/API_docs_v25/methods/auth_checkPassword.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->checkPassword(['password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.checkPassword({password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v25/methods/auth_checkPhone.md b/old_docs/API_docs_v25/methods/auth_checkPhone.md
index f3e32365..e974ce7f 100644
--- a/old_docs/API_docs_v25/methods/auth_checkPhone.md
+++ b/old_docs/API_docs_v25/methods/auth_checkPhone.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
auth_CheckedPhone = auth.checkPhone({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v25/methods/auth_exportAuthorization.md b/old_docs/API_docs_v25/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v25/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v25/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v25/methods/auth_importAuthorization.md b/old_docs/API_docs_v25/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v25/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v25/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v25/methods/auth_logOut.md b/old_docs/API_docs_v25/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v25/methods/auth_logOut.md
+++ b/old_docs/API_docs_v25/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v25/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v25/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v25/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v25/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v25/methods/auth_sendCode.md b/old_docs/API_docs_v25/methods/auth_sendCode.md
index 9afebb55..4e856d6a 100644
--- a/old_docs/API_docs_v25/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v25/methods/auth_sendCode.md
@@ -7,8 +7,59 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|sms\_type|[int](../types/int.md) | You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+|lang\_code|[string](../types/string.md) | You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['phone_number' => 'string', 'sms_type' => int, 'api_id' => int, 'api_hash' => 'string', 'lang_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({phone_number='string', sms_type=int, api_id=int, api_hash='string', lang_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v25/methods/auth_sendInvites.md b/old_docs/API_docs_v25/methods/auth_sendInvites.md
index e10c1109..4c11023e 100644
--- a/old_docs/API_docs_v25/methods/auth_sendInvites.md
+++ b/old_docs/API_docs_v25/methods/auth_sendInvites.md
@@ -49,10 +49,10 @@ Bool = auth.sendInvites({phone_numbers={'string'}, message='string', })
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_EMPTY|The provided message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_EMPTY|The provided message is empty|
diff --git a/old_docs/API_docs_v25/methods/auth_signIn.md b/old_docs/API_docs_v25/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v25/methods/auth_signIn.md
+++ b/old_docs/API_docs_v25/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v25/methods/auth_signUp.md b/old_docs/API_docs_v25/methods/auth_signUp.md
index 15960145..31154486 100644
--- a/old_docs/API_docs_v25/methods/auth_signUp.md
+++ b/old_docs/API_docs_v25/methods/auth_signUp.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', phone_code='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v25/methods/contacts_block.md b/old_docs/API_docs_v25/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v25/methods/contacts_block.md
+++ b/old_docs/API_docs_v25/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v25/methods/contacts_deleteContact.md b/old_docs/API_docs_v25/methods/contacts_deleteContact.md
index ba9569e4..a9321d64 100644
--- a/old_docs/API_docs_v25/methods/contacts_deleteContact.md
+++ b/old_docs/API_docs_v25/methods/contacts_deleteContact.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
contacts_Link = contacts.deleteContact({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v25/methods/contacts_deleteContacts.md b/old_docs/API_docs_v25/methods/contacts_deleteContacts.md
index bfc91fdd..3c8e90f0 100644
--- a/old_docs/API_docs_v25/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v25/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v25/methods/contacts_getStatuses.md b/old_docs/API_docs_v25/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v25/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v25/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v25/methods/contacts_importCard.md b/old_docs/API_docs_v25/methods/contacts_importCard.md
index 15addde1..ed3d17fe 100644
--- a/old_docs/API_docs_v25/methods/contacts_importCard.md
+++ b/old_docs/API_docs_v25/methods/contacts_importCard.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
User = contacts.importCard({export_card={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|EXPORT_CARD_INVALID|Provided card is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EXPORT_CARD_INVALID|Provided card is invalid|
diff --git a/old_docs/API_docs_v25/methods/contacts_resolveUsername.md b/old_docs/API_docs_v25/methods/contacts_resolveUsername.md
index fab56bb1..ade7ca48 100644
--- a/old_docs/API_docs_v25/methods/contacts_resolveUsername.md
+++ b/old_docs/API_docs_v25/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [User](../types/User.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$User = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+User = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v25/methods/contacts_search.md b/old_docs/API_docs_v25/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v25/methods/contacts_search.md
+++ b/old_docs/API_docs_v25/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v25/methods/contacts_unblock.md b/old_docs/API_docs_v25/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v25/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v25/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v25/methods/help_getConfig.md b/old_docs/API_docs_v25/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v25/methods/help_getConfig.md
+++ b/old_docs/API_docs_v25/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v25/methods/initConnection.md b/old_docs/API_docs_v25/methods/initConnection.md
index 659f4e6b..a41f0c4d 100644
--- a/old_docs/API_docs_v25/methods/initConnection.md
+++ b/old_docs/API_docs_v25/methods/initConnection.md
@@ -47,11 +47,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', lang_code='string', query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v25/methods/invokeWithLayer.md b/old_docs/API_docs_v25/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/old_docs/API_docs_v25/methods/invokeWithLayer.md
+++ b/old_docs/API_docs_v25/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v25/methods/messages_acceptEncryption.md b/old_docs/API_docs_v25/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v25/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v25/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v25/methods/messages_addChatUser.md b/old_docs/API_docs_v25/methods/messages_addChatUser.md
index 512f9662..af1a24a9 100644
--- a/old_docs/API_docs_v25/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v25/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
messages_StatedMessage = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v25/methods/messages_createChat.md b/old_docs/API_docs_v25/methods/messages_createChat.md
index fa7547f0..9949b9da 100644
--- a/old_docs/API_docs_v25/methods/messages_createChat.md
+++ b/old_docs/API_docs_v25/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StatedMessage = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v25/methods/messages_deleteChatUser.md b/old_docs/API_docs_v25/methods/messages_deleteChatUser.md
index bc6c52dc..1921e0c0 100644
--- a/old_docs/API_docs_v25/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v25/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_StatedMessage = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v25/methods/messages_deleteHistory.md b/old_docs/API_docs_v25/methods/messages_deleteHistory.md
index b67a784a..0dfbcc70 100644
--- a/old_docs/API_docs_v25/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v25/methods/messages_deleteHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({peer=InputPeer, offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v25/methods/messages_deleteMessages.md b/old_docs/API_docs_v25/methods/messages_deleteMessages.md
index 6df3ffec..a0d79592 100644
--- a/old_docs/API_docs_v25/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v25/methods/messages_deleteMessages.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.deleteMessages({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v25/methods/messages_discardEncryption.md b/old_docs/API_docs_v25/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v25/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v25/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v25/methods/messages_editChatPhoto.md b/old_docs/API_docs_v25/methods/messages_editChatPhoto.md
index e8c0dbb7..531832e2 100644
--- a/old_docs/API_docs_v25/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v25/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
messages_StatedMessage = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v25/methods/messages_editChatTitle.md b/old_docs/API_docs_v25/methods/messages_editChatTitle.md
index 5e3f003c..7c52520f 100644
--- a/old_docs/API_docs_v25/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v25/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StatedMessage = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v25/methods/messages_forwardMessage.md b/old_docs/API_docs_v25/methods/messages_forwardMessage.md
index 9e63ea02..d3324034 100644
--- a/old_docs/API_docs_v25/methods/messages_forwardMessage.md
+++ b/old_docs/API_docs_v25/methods/messages_forwardMessage.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
messages_StatedMessage = messages.forwardMessage({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|YOU_BLOCKED_USER|You blocked this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|YOU_BLOCKED_USER|You blocked this user|
diff --git a/old_docs/API_docs_v25/methods/messages_forwardMessages.md b/old_docs/API_docs_v25/methods/messages_forwardMessages.md
index f168b487..04bd7f4d 100644
--- a/old_docs/API_docs_v25/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v25/methods/messages_forwardMessages.md
@@ -43,29 +43,29 @@ Or, if you're into Lua:
messages_StatedMessages = messages.forwardMessages({peer=InputPeer, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v25/methods/messages_getChats.md b/old_docs/API_docs_v25/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/old_docs/API_docs_v25/methods/messages_getChats.md
+++ b/old_docs/API_docs_v25/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v25/methods/messages_getDhConfig.md b/old_docs/API_docs_v25/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v25/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v25/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v25/methods/messages_getDialogs.md b/old_docs/API_docs_v25/methods/messages_getDialogs.md
index fc46f52a..89f3a989 100644
--- a/old_docs/API_docs_v25/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v25/methods/messages_getDialogs.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({offset=int, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v25/methods/messages_getFullChat.md b/old_docs/API_docs_v25/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v25/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v25/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v25/methods/messages_getHistory.md b/old_docs/API_docs_v25/methods/messages_getHistory.md
index 8d242e50..5801caa1 100644
--- a/old_docs/API_docs_v25/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v25/methods/messages_getHistory.md
@@ -45,16 +45,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset=int, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v25/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v25/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v25/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v25/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v25/methods/messages_readHistory.md b/old_docs/API_docs_v25/methods/messages_readHistory.md
index 83f71826..6292f57c 100644
--- a/old_docs/API_docs_v25/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v25/methods/messages_readHistory.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.readHistory({peer=InputPeer, max_id=int, offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v25/methods/messages_receivedQueue.md b/old_docs/API_docs_v25/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v25/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v25/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v25/methods/messages_requestEncryption.md b/old_docs/API_docs_v25/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v25/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v25/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v25/methods/messages_search.md b/old_docs/API_docs_v25/methods/messages_search.md
index 5f5480cc..dc1b6934 100644
--- a/old_docs/API_docs_v25/methods/messages_search.md
+++ b/old_docs/API_docs_v25/methods/messages_search.md
@@ -49,16 +49,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({peer=InputPeer, q='string', filter=MessagesFilter, min_date=int, max_date=int, offset=int, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v25/methods/messages_sendEncrypted.md b/old_docs/API_docs_v25/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v25/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v25/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v25/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v25/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v25/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v25/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v25/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v25/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v25/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v25/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v25/methods/messages_sendMedia.md b/old_docs/API_docs_v25/methods/messages_sendMedia.md
index 4345a60e..bcc35df6 100644
--- a/old_docs/API_docs_v25/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v25/methods/messages_sendMedia.md
@@ -44,31 +44,31 @@ Or, if you're into Lua:
messages_StatedMessage = messages.sendMedia({peer=InputPeer, reply_to_msg_id=int, media=InputMedia, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v25/methods/messages_sendMessage.md b/old_docs/API_docs_v25/methods/messages_sendMessage.md
index 7d35ed41..6eb0cfa4 100644
--- a/old_docs/API_docs_v25/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v25/methods/messages_sendMessage.md
@@ -50,31 +50,31 @@ messages_SentMessage = messages.sendMessage({peer=InputPeer, reply_to_msg_id=int
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentMessage](../types/messages_SentMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v25/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v25/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v25/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v25/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v25/methods/messages_setTyping.md b/old_docs/API_docs_v25/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v25/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v25/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v25/methods/photos_getUserPhotos.md b/old_docs/API_docs_v25/methods/photos_getUserPhotos.md
index 908bc336..7e4583e7 100644
--- a/old_docs/API_docs_v25/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v25/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v25/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v25/methods/photos_updateProfilePhoto.md
index 53d0b12f..db7fe164 100644
--- a/old_docs/API_docs_v25/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v25/methods/photos_updateProfilePhoto.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, crop=InputPhotoCrop, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v25/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v25/methods/photos_uploadProfilePhoto.md
index f140329e..10653c42 100644
--- a/old_docs/API_docs_v25/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v25/methods/photos_uploadProfilePhoto.md
@@ -45,13 +45,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, caption='string', geo_point=InputGeoPoint, crop=InputPhotoCrop, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v25/methods/updates_getDifference.md b/old_docs/API_docs_v25/methods/updates_getDifference.md
index 33e7d7f2..57ea6d99 100644
--- a/old_docs/API_docs_v25/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v25/methods/updates_getDifference.md
@@ -7,8 +7,54 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v25/methods/updates_getState.md b/old_docs/API_docs_v25/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v25/methods/updates_getState.md
+++ b/old_docs/API_docs_v25/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v25/methods/upload_getFile.md b/old_docs/API_docs_v25/methods/upload_getFile.md
index c72e6090..d8b433d6 100644
--- a/old_docs/API_docs_v25/methods/upload_getFile.md
+++ b/old_docs/API_docs_v25/methods/upload_getFile.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v25/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v25/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v25/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v25/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v25/methods/upload_saveFilePart.md b/old_docs/API_docs_v25/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v25/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v25/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v25/methods/users_getFullUser.md b/old_docs/API_docs_v25/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v25/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v25/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v25/methods/users_getUsers.md b/old_docs/API_docs_v25/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v25/methods/users_getUsers.md
+++ b/old_docs/API_docs_v25/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v27/methods/README.md b/old_docs/API_docs_v27/methods/README.md
index 57c2dfa7..a161eab6 100644
--- a/old_docs/API_docs_v27/methods/README.md
+++ b/old_docs/API_docs_v27/methods/README.md
@@ -30,195 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add phone number as contact: contacts.importContacts
-
-* Block a user: contacts.block
-
-* Change notification settings: account.updateNotifySettings
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if this phone number is registered on telegram: auth.checkPhone
-
-* Check if this username is available: account.checkUsername
-
-* Create a chat (not supergroup): messages.createChat
-
-* Create geochat: geochats.createGeoChat
-
-* Delete a certain session: account.resetAuthorization
-
-* Delete a contact: contacts.deleteContact
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete chat history: messages.deleteHistory
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete this account: account.deleteAccount
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Edit geochat photo: geochats.editChatPhoto
-
-* Edit geochat title: geochats.editChatTitle
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Export contact as card: contacts.exportCard
-
-* Forward message: messages.forwardMessage
-
-* Forward messages: messages.forwardMessages
-
-* Get account TTL: account.getAccountTTL
-
-* Get all contacts: contacts.getContacts
-
-* Get all logged-in authorizations: account.getAuthorizations
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get blocked users: contacts.getBlocked
-
-* Get full info about a geochat: geochats.getFullChat
-
-* Get geochat history: geochats.getHistory
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get invitation text: help.getInviteText
-
-* Get messages: messages.getMessages
-
-* Get nearby geochats: geochats.getLocated
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get recent geochats: geochats.getRecents
-
-* Get server configuration: help.getConfig
-
-* Get stickers: messages.getStickers
-
-* Get suggested contacts: contacts.getSuggested
-
-* Get the current password: account.getPassword
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Get webpage preview: messages.getWebPagePreview
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Import card as contact: contacts.importCard
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Invite friends to telegram!: auth.sendInvites
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Join a geochat: geochats.checkin
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Register device for push notifications: account.registerDevice
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Search contacts: contacts.search
-
-* Search messages in geocha: geochats.search
-
-* Search peers or messages: messages.search
-
-* Send SMS verification code: auth.sendSms
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message to all users in the chat list: messages.sendBroadcast
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send an email to recover the 2FA password: auth.requestPasswordRecovery
-
-* Send media to geochat: geochats.sendMedia
-
-* Send message to geochat: geochats.sendMessage
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send typing notification to geochat: geochats.setTyping
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Send verification phone call: auth.sendCall
-
-* Set account TTL: account.setAccountTTL
-
-* Set privacy settings: account.setPrivacy
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update profile info: account.updateProfile
-
-* Update this user's username: account.updateUsername
-
-* Upload profile photo: photos.uploadProfilePhoto
-
-* Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
-
diff --git a/old_docs/API_docs_v27/methods/account_changePhone.md b/old_docs/API_docs_v27/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/old_docs/API_docs_v27/methods/account_changePhone.md
+++ b/old_docs/API_docs_v27/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v27/methods/account_checkUsername.md b/old_docs/API_docs_v27/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v27/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v27/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v27/methods/account_getNotifySettings.md b/old_docs/API_docs_v27/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v27/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v27/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v27/methods/account_getPasswordSettings.md b/old_docs/API_docs_v27/methods/account_getPasswordSettings.md
index 8ebb78ee..8f878365 100644
--- a/old_docs/API_docs_v27/methods/account_getPasswordSettings.md
+++ b/old_docs/API_docs_v27/methods/account_getPasswordSettings.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+Get the current 2FA settings
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+### Return type: [account\_PasswordSettings](../types/account_PasswordSettings.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$account_PasswordSettings = $MadelineProto->account->getPasswordSettings(['current_password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+account_PasswordSettings = account.getPasswordSettings({current_password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v27/methods/account_getPrivacy.md b/old_docs/API_docs_v27/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/old_docs/API_docs_v27/methods/account_getPrivacy.md
+++ b/old_docs/API_docs_v27/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v27/methods/account_registerDevice.md b/old_docs/API_docs_v27/methods/account_registerDevice.md
index ab5a56a6..908977a3 100644
--- a/old_docs/API_docs_v27/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v27/methods/account_registerDevice.md
@@ -48,10 +48,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({token_type=int, token='string', device_model='string', system_version='string', app_version='string', app_sandbox=Bool, lang_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v27/methods/account_resetAuthorization.md b/old_docs/API_docs_v27/methods/account_resetAuthorization.md
index c950992c..e8e8ecc4 100644
--- a/old_docs/API_docs_v27/methods/account_resetAuthorization.md
+++ b/old_docs/API_docs_v27/methods/account_resetAuthorization.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.resetAuthorization({hash=long, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v27/methods/account_sendChangePhoneCode.md b/old_docs/API_docs_v27/methods/account_sendChangePhoneCode.md
index c4bc0675..8537d9d9 100644
--- a/old_docs/API_docs_v27/methods/account_sendChangePhoneCode.md
+++ b/old_docs/API_docs_v27/methods/account_sendChangePhoneCode.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_SentChangePhoneCode = account.sendChangePhoneCode({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v27/methods/account_setAccountTTL.md b/old_docs/API_docs_v27/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/old_docs/API_docs_v27/methods/account_setAccountTTL.md
+++ b/old_docs/API_docs_v27/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/old_docs/API_docs_v27/methods/account_setPrivacy.md b/old_docs/API_docs_v27/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/old_docs/API_docs_v27/methods/account_setPrivacy.md
+++ b/old_docs/API_docs_v27/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v27/methods/account_unregisterDevice.md b/old_docs/API_docs_v27/methods/account_unregisterDevice.md
index 589f48b0..a184da43 100644
--- a/old_docs/API_docs_v27/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v27/methods/account_unregisterDevice.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v27/methods/account_updateNotifySettings.md b/old_docs/API_docs_v27/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v27/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v27/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v27/methods/account_updatePasswordSettings.md b/old_docs/API_docs_v27/methods/account_updatePasswordSettings.md
index 80f27228..68e5da6d 100644
--- a/old_docs/API_docs_v27/methods/account_updatePasswordSettings.md
+++ b/old_docs/API_docs_v27/methods/account_updatePasswordSettings.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+|new\_settings|[account\_PasswordInputSettings](../types/account_PasswordInputSettings.md) | New 2FA settings | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->account->updatePasswordSettings(['current_password_hash' => 'bytes', 'new_settings' => account_PasswordInputSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = account.updatePasswordSettings({current_password_hash='bytes', new_settings=account_PasswordInputSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EMAIL_UNCONFIRMED|Email unconfirmed|
+|400|EMAIL_UNCONFIRMED_X|The provided email isn't confirmed, X is the length of the verification code that was just sent to the email.|
+|400|NEW_SALT_INVALID|The new salt is invalid|
+|400|NEW_SETTINGS_INVALID|The new settings are invalid|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v27/methods/account_updateProfile.md b/old_docs/API_docs_v27/methods/account_updateProfile.md
index 486f63bc..33423686 100644
--- a/old_docs/API_docs_v27/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v27/methods/account_updateProfile.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v27/methods/account_updateStatus.md b/old_docs/API_docs_v27/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v27/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v27/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v27/methods/account_updateUsername.md b/old_docs/API_docs_v27/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v27/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v27/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v27/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v27/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v27/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v27/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v27/methods/auth_checkPassword.md b/old_docs/API_docs_v27/methods/auth_checkPassword.md
index 8d76c483..db65cb56 100644
--- a/old_docs/API_docs_v27/methods/auth_checkPassword.md
+++ b/old_docs/API_docs_v27/methods/auth_checkPassword.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->checkPassword(['password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.checkPassword({password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v27/methods/auth_checkPhone.md b/old_docs/API_docs_v27/methods/auth_checkPhone.md
index f3e32365..e974ce7f 100644
--- a/old_docs/API_docs_v27/methods/auth_checkPhone.md
+++ b/old_docs/API_docs_v27/methods/auth_checkPhone.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
auth_CheckedPhone = auth.checkPhone({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v27/methods/auth_exportAuthorization.md b/old_docs/API_docs_v27/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v27/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v27/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v27/methods/auth_importAuthorization.md b/old_docs/API_docs_v27/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v27/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v27/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v27/methods/auth_logOut.md b/old_docs/API_docs_v27/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v27/methods/auth_logOut.md
+++ b/old_docs/API_docs_v27/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v27/methods/auth_recoverPassword.md b/old_docs/API_docs_v27/methods/auth_recoverPassword.md
index 83ff5aed..d4bad9c5 100644
--- a/old_docs/API_docs_v27/methods/auth_recoverPassword.md
+++ b/old_docs/API_docs_v27/methods/auth_recoverPassword.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
auth_Authorization = auth.recoverPassword({code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_EMPTY|The provided code is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_EMPTY|The provided code is empty|
diff --git a/old_docs/API_docs_v27/methods/auth_requestPasswordRecovery.md b/old_docs/API_docs_v27/methods/auth_requestPasswordRecovery.md
index 1864bbb0..b6ad57ba 100644
--- a/old_docs/API_docs_v27/methods/auth_requestPasswordRecovery.md
+++ b/old_docs/API_docs_v27/methods/auth_requestPasswordRecovery.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
auth_PasswordRecovery = auth.requestPasswordRecovery({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_EMPTY|The provided password is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_EMPTY|The provided password is empty|
diff --git a/old_docs/API_docs_v27/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v27/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v27/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v27/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v27/methods/auth_sendCode.md b/old_docs/API_docs_v27/methods/auth_sendCode.md
index 9afebb55..4e856d6a 100644
--- a/old_docs/API_docs_v27/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v27/methods/auth_sendCode.md
@@ -7,8 +7,59 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|sms\_type|[int](../types/int.md) | You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+|lang\_code|[string](../types/string.md) | You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['phone_number' => 'string', 'sms_type' => int, 'api_id' => int, 'api_hash' => 'string', 'lang_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({phone_number='string', sms_type=int, api_id=int, api_hash='string', lang_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v27/methods/auth_sendInvites.md b/old_docs/API_docs_v27/methods/auth_sendInvites.md
index e10c1109..4c11023e 100644
--- a/old_docs/API_docs_v27/methods/auth_sendInvites.md
+++ b/old_docs/API_docs_v27/methods/auth_sendInvites.md
@@ -49,10 +49,10 @@ Bool = auth.sendInvites({phone_numbers={'string'}, message='string', })
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_EMPTY|The provided message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_EMPTY|The provided message is empty|
diff --git a/old_docs/API_docs_v27/methods/auth_signIn.md b/old_docs/API_docs_v27/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v27/methods/auth_signIn.md
+++ b/old_docs/API_docs_v27/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v27/methods/auth_signUp.md b/old_docs/API_docs_v27/methods/auth_signUp.md
index 15960145..31154486 100644
--- a/old_docs/API_docs_v27/methods/auth_signUp.md
+++ b/old_docs/API_docs_v27/methods/auth_signUp.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', phone_code='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v27/methods/contacts_block.md b/old_docs/API_docs_v27/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v27/methods/contacts_block.md
+++ b/old_docs/API_docs_v27/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v27/methods/contacts_deleteContact.md b/old_docs/API_docs_v27/methods/contacts_deleteContact.md
index ba9569e4..a9321d64 100644
--- a/old_docs/API_docs_v27/methods/contacts_deleteContact.md
+++ b/old_docs/API_docs_v27/methods/contacts_deleteContact.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
contacts_Link = contacts.deleteContact({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v27/methods/contacts_deleteContacts.md b/old_docs/API_docs_v27/methods/contacts_deleteContacts.md
index bfc91fdd..3c8e90f0 100644
--- a/old_docs/API_docs_v27/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v27/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v27/methods/contacts_getStatuses.md b/old_docs/API_docs_v27/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v27/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v27/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v27/methods/contacts_importCard.md b/old_docs/API_docs_v27/methods/contacts_importCard.md
index 15addde1..ed3d17fe 100644
--- a/old_docs/API_docs_v27/methods/contacts_importCard.md
+++ b/old_docs/API_docs_v27/methods/contacts_importCard.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
User = contacts.importCard({export_card={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|EXPORT_CARD_INVALID|Provided card is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EXPORT_CARD_INVALID|Provided card is invalid|
diff --git a/old_docs/API_docs_v27/methods/contacts_resolveUsername.md b/old_docs/API_docs_v27/methods/contacts_resolveUsername.md
index fab56bb1..ade7ca48 100644
--- a/old_docs/API_docs_v27/methods/contacts_resolveUsername.md
+++ b/old_docs/API_docs_v27/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [User](../types/User.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$User = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+User = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v27/methods/contacts_search.md b/old_docs/API_docs_v27/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v27/methods/contacts_search.md
+++ b/old_docs/API_docs_v27/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v27/methods/contacts_unblock.md b/old_docs/API_docs_v27/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v27/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v27/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v27/methods/help_getConfig.md b/old_docs/API_docs_v27/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v27/methods/help_getConfig.md
+++ b/old_docs/API_docs_v27/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v27/methods/initConnection.md b/old_docs/API_docs_v27/methods/initConnection.md
index 659f4e6b..a41f0c4d 100644
--- a/old_docs/API_docs_v27/methods/initConnection.md
+++ b/old_docs/API_docs_v27/methods/initConnection.md
@@ -47,11 +47,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', lang_code='string', query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v27/methods/invokeWithLayer.md b/old_docs/API_docs_v27/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/old_docs/API_docs_v27/methods/invokeWithLayer.md
+++ b/old_docs/API_docs_v27/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v27/methods/messages_acceptEncryption.md b/old_docs/API_docs_v27/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v27/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v27/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v27/methods/messages_addChatUser.md b/old_docs/API_docs_v27/methods/messages_addChatUser.md
index bc0d6253..b5e164b2 100644
--- a/old_docs/API_docs_v27/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v27/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
Updates = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v27/methods/messages_createChat.md b/old_docs/API_docs_v27/methods/messages_createChat.md
index 8f6e9672..b2623f1d 100644
--- a/old_docs/API_docs_v27/methods/messages_createChat.md
+++ b/old_docs/API_docs_v27/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v27/methods/messages_deleteChatUser.md b/old_docs/API_docs_v27/methods/messages_deleteChatUser.md
index 63529571..11b9b220 100644
--- a/old_docs/API_docs_v27/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v27/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v27/methods/messages_deleteHistory.md b/old_docs/API_docs_v27/methods/messages_deleteHistory.md
index b67a784a..0dfbcc70 100644
--- a/old_docs/API_docs_v27/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v27/methods/messages_deleteHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({peer=InputPeer, offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v27/methods/messages_deleteMessages.md b/old_docs/API_docs_v27/methods/messages_deleteMessages.md
index 6df3ffec..a0d79592 100644
--- a/old_docs/API_docs_v27/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v27/methods/messages_deleteMessages.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.deleteMessages({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v27/methods/messages_discardEncryption.md b/old_docs/API_docs_v27/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v27/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v27/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v27/methods/messages_editChatPhoto.md b/old_docs/API_docs_v27/methods/messages_editChatPhoto.md
index 2a82c232..a21a03b9 100644
--- a/old_docs/API_docs_v27/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v27/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Updates = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v27/methods/messages_editChatTitle.md b/old_docs/API_docs_v27/methods/messages_editChatTitle.md
index 2c338ad6..72f78741 100644
--- a/old_docs/API_docs_v27/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v27/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v27/methods/messages_forwardMessage.md b/old_docs/API_docs_v27/methods/messages_forwardMessage.md
index c8e0b18d..95f6d2f3 100644
--- a/old_docs/API_docs_v27/methods/messages_forwardMessage.md
+++ b/old_docs/API_docs_v27/methods/messages_forwardMessage.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Updates = messages.forwardMessage({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|YOU_BLOCKED_USER|You blocked this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|YOU_BLOCKED_USER|You blocked this user|
diff --git a/old_docs/API_docs_v27/methods/messages_forwardMessages.md b/old_docs/API_docs_v27/methods/messages_forwardMessages.md
index 8cd4223b..b8e62557 100644
--- a/old_docs/API_docs_v27/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v27/methods/messages_forwardMessages.md
@@ -43,29 +43,29 @@ Or, if you're into Lua:
Updates = messages.forwardMessages({peer=InputPeer, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v27/methods/messages_getChats.md b/old_docs/API_docs_v27/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/old_docs/API_docs_v27/methods/messages_getChats.md
+++ b/old_docs/API_docs_v27/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v27/methods/messages_getDhConfig.md b/old_docs/API_docs_v27/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v27/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v27/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v27/methods/messages_getDialogs.md b/old_docs/API_docs_v27/methods/messages_getDialogs.md
index fc46f52a..89f3a989 100644
--- a/old_docs/API_docs_v27/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v27/methods/messages_getDialogs.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({offset=int, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v27/methods/messages_getFullChat.md b/old_docs/API_docs_v27/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v27/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v27/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v27/methods/messages_getHistory.md b/old_docs/API_docs_v27/methods/messages_getHistory.md
index 8d242e50..5801caa1 100644
--- a/old_docs/API_docs_v27/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v27/methods/messages_getHistory.md
@@ -45,16 +45,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset=int, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v27/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v27/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v27/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v27/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v27/methods/messages_readHistory.md b/old_docs/API_docs_v27/methods/messages_readHistory.md
index 83f71826..6292f57c 100644
--- a/old_docs/API_docs_v27/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v27/methods/messages_readHistory.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.readHistory({peer=InputPeer, max_id=int, offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v27/methods/messages_receivedQueue.md b/old_docs/API_docs_v27/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v27/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v27/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v27/methods/messages_requestEncryption.md b/old_docs/API_docs_v27/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v27/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v27/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v27/methods/messages_search.md b/old_docs/API_docs_v27/methods/messages_search.md
index 5f5480cc..dc1b6934 100644
--- a/old_docs/API_docs_v27/methods/messages_search.md
+++ b/old_docs/API_docs_v27/methods/messages_search.md
@@ -49,16 +49,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({peer=InputPeer, q='string', filter=MessagesFilter, min_date=int, max_date=int, offset=int, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v27/methods/messages_sendEncrypted.md b/old_docs/API_docs_v27/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v27/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v27/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v27/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v27/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v27/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v27/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v27/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v27/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v27/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v27/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v27/methods/messages_sendMedia.md b/old_docs/API_docs_v27/methods/messages_sendMedia.md
index a26c16ea..0ee1133d 100644
--- a/old_docs/API_docs_v27/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v27/methods/messages_sendMedia.md
@@ -44,31 +44,31 @@ Or, if you're into Lua:
Updates = messages.sendMedia({peer=InputPeer, reply_to_msg_id=int, media=InputMedia, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v27/methods/messages_sendMessage.md b/old_docs/API_docs_v27/methods/messages_sendMessage.md
index fa175e2d..bac1e02b 100644
--- a/old_docs/API_docs_v27/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v27/methods/messages_sendMessage.md
@@ -50,31 +50,31 @@ messages_SentMessage = messages.sendMessage({peer=InputPeer, reply_to_msg_id=int
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentMessage](../types/messages_SentMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v27/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v27/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v27/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v27/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v27/methods/messages_setTyping.md b/old_docs/API_docs_v27/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v27/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v27/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v27/methods/photos_getUserPhotos.md b/old_docs/API_docs_v27/methods/photos_getUserPhotos.md
index 908bc336..7e4583e7 100644
--- a/old_docs/API_docs_v27/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v27/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v27/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v27/methods/photos_updateProfilePhoto.md
index 53d0b12f..db7fe164 100644
--- a/old_docs/API_docs_v27/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v27/methods/photos_updateProfilePhoto.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, crop=InputPhotoCrop, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v27/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v27/methods/photos_uploadProfilePhoto.md
index f140329e..10653c42 100644
--- a/old_docs/API_docs_v27/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v27/methods/photos_uploadProfilePhoto.md
@@ -45,13 +45,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, caption='string', geo_point=InputGeoPoint, crop=InputPhotoCrop, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v27/methods/updates_getDifference.md b/old_docs/API_docs_v27/methods/updates_getDifference.md
index 33e7d7f2..57ea6d99 100644
--- a/old_docs/API_docs_v27/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v27/methods/updates_getDifference.md
@@ -7,8 +7,54 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v27/methods/updates_getState.md b/old_docs/API_docs_v27/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v27/methods/updates_getState.md
+++ b/old_docs/API_docs_v27/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v27/methods/upload_getFile.md b/old_docs/API_docs_v27/methods/upload_getFile.md
index c72e6090..d8b433d6 100644
--- a/old_docs/API_docs_v27/methods/upload_getFile.md
+++ b/old_docs/API_docs_v27/methods/upload_getFile.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v27/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v27/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v27/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v27/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v27/methods/upload_saveFilePart.md b/old_docs/API_docs_v27/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v27/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v27/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v27/methods/users_getFullUser.md b/old_docs/API_docs_v27/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v27/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v27/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v27/methods/users_getUsers.md b/old_docs/API_docs_v27/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v27/methods/users_getUsers.md
+++ b/old_docs/API_docs_v27/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v33/methods/README.md b/old_docs/API_docs_v33/methods/README.md
index a7982703..a161eab6 100644
--- a/old_docs/API_docs_v33/methods/README.md
+++ b/old_docs/API_docs_v33/methods/README.md
@@ -30,213 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Add a sticker set: messages.installStickerSet
-
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add phone number as contact: contacts.importContacts
-
-* Block a user: contacts.block
-
-* Change notification settings: account.updateNotifySettings
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if an invitation link is valid: messages.checkChatInvite
-
-* Check if this phone number is registered on telegram: auth.checkPhone
-
-* Check if this username is available: account.checkUsername
-
-* Create a chat (not supergroup): messages.createChat
-
-* Create geochat: geochats.createGeoChat
-
-* Delete a certain session: account.resetAuthorization
-
-* Delete a contact: contacts.deleteContact
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete chat history: messages.deleteHistory
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete this account: account.deleteAccount
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Edit geochat photo: geochats.editChatPhoto
-
-* Edit geochat title: geochats.editChatTitle
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Export chat invite : messages.exportChatInvite
-
-* Export contact as card: contacts.exportCard
-
-* Forward message: messages.forwardMessage
-
-* Forward messages: messages.forwardMessages
-
-* Get a stickerset: messages.getStickerSet
-
-* Get account TTL: account.getAccountTTL
-
-* Get all contacts: contacts.getContacts
-
-* Get all logged-in authorizations: account.getAuthorizations
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get blocked users: contacts.getBlocked
-
-* Get full info about a geochat: geochats.getFullChat
-
-* Get geochat history: geochats.getHistory
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get invitation text: help.getInviteText
-
-* Get messages: messages.getMessages
-
-* Get nearby geochats: geochats.getLocated
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get recent geochats: geochats.getRecents
-
-* Get server configuration: help.getConfig
-
-* Get stickers: messages.getStickers
-
-* Get suggested contacts: contacts.getSuggested
-
-* Get the changelog of this app: help.getAppChangelog
-
-* Get the current password: account.getPassword
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Get webpage preview: messages.getWebPagePreview
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Import card as contact: contacts.importCard
-
-* Import chat invite: messages.importChatInvite
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Invite friends to telegram!: auth.sendInvites
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invoke with method without returning updates in the socket: invokeWithoutUpdates
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Join a geochat: geochats.checkin
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Register device for push notifications: account.registerDevice
-
-* Remove a sticker set: messages.uninstallStickerSet
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Search contacts: contacts.search
-
-* Search messages in geocha: geochats.search
-
-* Search peers or messages: messages.search
-
-* Send SMS verification code: auth.sendSms
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message to all users in the chat list: messages.sendBroadcast
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send an email to recover the 2FA password: auth.requestPasswordRecovery
-
-* Send media to geochat: geochats.sendMedia
-
-* Send message to geochat: geochats.sendMessage
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send typing notification to geochat: geochats.setTyping
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Send verification phone call: auth.sendCall
-
-* Set account TTL: account.setAccountTTL
-
-* Set privacy settings: account.setPrivacy
-
-* Start a bot: messages.startBot
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update profile info: account.updateProfile
-
-* Update this user's username: account.updateUsername
-
-* Upload profile photo: photos.uploadProfilePhoto
-
-* Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
-
diff --git a/old_docs/API_docs_v33/methods/account_changePhone.md b/old_docs/API_docs_v33/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/old_docs/API_docs_v33/methods/account_changePhone.md
+++ b/old_docs/API_docs_v33/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v33/methods/account_checkUsername.md b/old_docs/API_docs_v33/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v33/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v33/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v33/methods/account_getNotifySettings.md b/old_docs/API_docs_v33/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v33/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v33/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v33/methods/account_getPasswordSettings.md b/old_docs/API_docs_v33/methods/account_getPasswordSettings.md
index 8ebb78ee..8f878365 100644
--- a/old_docs/API_docs_v33/methods/account_getPasswordSettings.md
+++ b/old_docs/API_docs_v33/methods/account_getPasswordSettings.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+Get the current 2FA settings
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+### Return type: [account\_PasswordSettings](../types/account_PasswordSettings.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$account_PasswordSettings = $MadelineProto->account->getPasswordSettings(['current_password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+account_PasswordSettings = account.getPasswordSettings({current_password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v33/methods/account_getPrivacy.md b/old_docs/API_docs_v33/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/old_docs/API_docs_v33/methods/account_getPrivacy.md
+++ b/old_docs/API_docs_v33/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v33/methods/account_registerDevice.md b/old_docs/API_docs_v33/methods/account_registerDevice.md
index ab5a56a6..908977a3 100644
--- a/old_docs/API_docs_v33/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v33/methods/account_registerDevice.md
@@ -48,10 +48,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({token_type=int, token='string', device_model='string', system_version='string', app_version='string', app_sandbox=Bool, lang_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v33/methods/account_resetAuthorization.md b/old_docs/API_docs_v33/methods/account_resetAuthorization.md
index c950992c..e8e8ecc4 100644
--- a/old_docs/API_docs_v33/methods/account_resetAuthorization.md
+++ b/old_docs/API_docs_v33/methods/account_resetAuthorization.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.resetAuthorization({hash=long, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v33/methods/account_sendChangePhoneCode.md b/old_docs/API_docs_v33/methods/account_sendChangePhoneCode.md
index c4bc0675..8537d9d9 100644
--- a/old_docs/API_docs_v33/methods/account_sendChangePhoneCode.md
+++ b/old_docs/API_docs_v33/methods/account_sendChangePhoneCode.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_SentChangePhoneCode = account.sendChangePhoneCode({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v33/methods/account_setAccountTTL.md b/old_docs/API_docs_v33/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/old_docs/API_docs_v33/methods/account_setAccountTTL.md
+++ b/old_docs/API_docs_v33/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/old_docs/API_docs_v33/methods/account_setPrivacy.md b/old_docs/API_docs_v33/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/old_docs/API_docs_v33/methods/account_setPrivacy.md
+++ b/old_docs/API_docs_v33/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v33/methods/account_unregisterDevice.md b/old_docs/API_docs_v33/methods/account_unregisterDevice.md
index 589f48b0..a184da43 100644
--- a/old_docs/API_docs_v33/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v33/methods/account_unregisterDevice.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v33/methods/account_updateNotifySettings.md b/old_docs/API_docs_v33/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v33/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v33/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v33/methods/account_updatePasswordSettings.md b/old_docs/API_docs_v33/methods/account_updatePasswordSettings.md
index 80f27228..68e5da6d 100644
--- a/old_docs/API_docs_v33/methods/account_updatePasswordSettings.md
+++ b/old_docs/API_docs_v33/methods/account_updatePasswordSettings.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+|new\_settings|[account\_PasswordInputSettings](../types/account_PasswordInputSettings.md) | New 2FA settings | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->account->updatePasswordSettings(['current_password_hash' => 'bytes', 'new_settings' => account_PasswordInputSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = account.updatePasswordSettings({current_password_hash='bytes', new_settings=account_PasswordInputSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EMAIL_UNCONFIRMED|Email unconfirmed|
+|400|EMAIL_UNCONFIRMED_X|The provided email isn't confirmed, X is the length of the verification code that was just sent to the email.|
+|400|NEW_SALT_INVALID|The new salt is invalid|
+|400|NEW_SETTINGS_INVALID|The new settings are invalid|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v33/methods/account_updateProfile.md b/old_docs/API_docs_v33/methods/account_updateProfile.md
index 486f63bc..33423686 100644
--- a/old_docs/API_docs_v33/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v33/methods/account_updateProfile.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v33/methods/account_updateStatus.md b/old_docs/API_docs_v33/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v33/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v33/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v33/methods/account_updateUsername.md b/old_docs/API_docs_v33/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v33/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v33/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v33/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v33/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v33/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v33/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v33/methods/auth_checkPassword.md b/old_docs/API_docs_v33/methods/auth_checkPassword.md
index 8d76c483..db65cb56 100644
--- a/old_docs/API_docs_v33/methods/auth_checkPassword.md
+++ b/old_docs/API_docs_v33/methods/auth_checkPassword.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->checkPassword(['password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.checkPassword({password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v33/methods/auth_checkPhone.md b/old_docs/API_docs_v33/methods/auth_checkPhone.md
index f3e32365..e974ce7f 100644
--- a/old_docs/API_docs_v33/methods/auth_checkPhone.md
+++ b/old_docs/API_docs_v33/methods/auth_checkPhone.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
auth_CheckedPhone = auth.checkPhone({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v33/methods/auth_exportAuthorization.md b/old_docs/API_docs_v33/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v33/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v33/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v33/methods/auth_importAuthorization.md b/old_docs/API_docs_v33/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v33/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v33/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v33/methods/auth_importBotAuthorization.md b/old_docs/API_docs_v33/methods/auth_importBotAuthorization.md
index 1a98c1b9..98a2f8ca 100644
--- a/old_docs/API_docs_v33/methods/auth_importBotAuthorization.md
+++ b/old_docs/API_docs_v33/methods/auth_importBotAuthorization.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|api\_id|[int](../types/int.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_hash|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|bot\_auth\_token|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importBotAuthorization(['api_id' => int, 'api_hash' => 'string', 'bot_auth_token' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importBotAuthorization({api_id=int, api_hash='string', bot_auth_token='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ACCESS_TOKEN_EXPIRED|Access token expired|
+|400|ACCESS_TOKEN_INVALID|Access token invalid|
+|400|API_ID_INVALID|API ID invalid|
diff --git a/old_docs/API_docs_v33/methods/auth_logOut.md b/old_docs/API_docs_v33/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v33/methods/auth_logOut.md
+++ b/old_docs/API_docs_v33/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v33/methods/auth_recoverPassword.md b/old_docs/API_docs_v33/methods/auth_recoverPassword.md
index 83ff5aed..d4bad9c5 100644
--- a/old_docs/API_docs_v33/methods/auth_recoverPassword.md
+++ b/old_docs/API_docs_v33/methods/auth_recoverPassword.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
auth_Authorization = auth.recoverPassword({code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_EMPTY|The provided code is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_EMPTY|The provided code is empty|
diff --git a/old_docs/API_docs_v33/methods/auth_requestPasswordRecovery.md b/old_docs/API_docs_v33/methods/auth_requestPasswordRecovery.md
index 1864bbb0..b6ad57ba 100644
--- a/old_docs/API_docs_v33/methods/auth_requestPasswordRecovery.md
+++ b/old_docs/API_docs_v33/methods/auth_requestPasswordRecovery.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
auth_PasswordRecovery = auth.requestPasswordRecovery({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_EMPTY|The provided password is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_EMPTY|The provided password is empty|
diff --git a/old_docs/API_docs_v33/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v33/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v33/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v33/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v33/methods/auth_sendCode.md b/old_docs/API_docs_v33/methods/auth_sendCode.md
index 9afebb55..4e856d6a 100644
--- a/old_docs/API_docs_v33/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v33/methods/auth_sendCode.md
@@ -7,8 +7,59 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|sms\_type|[int](../types/int.md) | You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+|lang\_code|[string](../types/string.md) | You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['phone_number' => 'string', 'sms_type' => int, 'api_id' => int, 'api_hash' => 'string', 'lang_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({phone_number='string', sms_type=int, api_id=int, api_hash='string', lang_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v33/methods/auth_sendInvites.md b/old_docs/API_docs_v33/methods/auth_sendInvites.md
index e10c1109..4c11023e 100644
--- a/old_docs/API_docs_v33/methods/auth_sendInvites.md
+++ b/old_docs/API_docs_v33/methods/auth_sendInvites.md
@@ -49,10 +49,10 @@ Bool = auth.sendInvites({phone_numbers={'string'}, message='string', })
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_EMPTY|The provided message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_EMPTY|The provided message is empty|
diff --git a/old_docs/API_docs_v33/methods/auth_signIn.md b/old_docs/API_docs_v33/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v33/methods/auth_signIn.md
+++ b/old_docs/API_docs_v33/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v33/methods/auth_signUp.md b/old_docs/API_docs_v33/methods/auth_signUp.md
index 15960145..31154486 100644
--- a/old_docs/API_docs_v33/methods/auth_signUp.md
+++ b/old_docs/API_docs_v33/methods/auth_signUp.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', phone_code='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v33/methods/contacts_block.md b/old_docs/API_docs_v33/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v33/methods/contacts_block.md
+++ b/old_docs/API_docs_v33/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v33/methods/contacts_deleteContact.md b/old_docs/API_docs_v33/methods/contacts_deleteContact.md
index ba9569e4..a9321d64 100644
--- a/old_docs/API_docs_v33/methods/contacts_deleteContact.md
+++ b/old_docs/API_docs_v33/methods/contacts_deleteContact.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
contacts_Link = contacts.deleteContact({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v33/methods/contacts_deleteContacts.md b/old_docs/API_docs_v33/methods/contacts_deleteContacts.md
index bfc91fdd..3c8e90f0 100644
--- a/old_docs/API_docs_v33/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v33/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v33/methods/contacts_getStatuses.md b/old_docs/API_docs_v33/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v33/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v33/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v33/methods/contacts_importCard.md b/old_docs/API_docs_v33/methods/contacts_importCard.md
index 15addde1..ed3d17fe 100644
--- a/old_docs/API_docs_v33/methods/contacts_importCard.md
+++ b/old_docs/API_docs_v33/methods/contacts_importCard.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
User = contacts.importCard({export_card={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|EXPORT_CARD_INVALID|Provided card is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EXPORT_CARD_INVALID|Provided card is invalid|
diff --git a/old_docs/API_docs_v33/methods/contacts_resolveUsername.md b/old_docs/API_docs_v33/methods/contacts_resolveUsername.md
index fab56bb1..ade7ca48 100644
--- a/old_docs/API_docs_v33/methods/contacts_resolveUsername.md
+++ b/old_docs/API_docs_v33/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [User](../types/User.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$User = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+User = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v33/methods/contacts_search.md b/old_docs/API_docs_v33/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v33/methods/contacts_search.md
+++ b/old_docs/API_docs_v33/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v33/methods/contacts_unblock.md b/old_docs/API_docs_v33/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v33/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v33/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v33/methods/help_getConfig.md b/old_docs/API_docs_v33/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v33/methods/help_getConfig.md
+++ b/old_docs/API_docs_v33/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v33/methods/initConnection.md b/old_docs/API_docs_v33/methods/initConnection.md
index 659f4e6b..a41f0c4d 100644
--- a/old_docs/API_docs_v33/methods/initConnection.md
+++ b/old_docs/API_docs_v33/methods/initConnection.md
@@ -47,11 +47,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', lang_code='string', query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v33/methods/invokeWithLayer.md b/old_docs/API_docs_v33/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/old_docs/API_docs_v33/methods/invokeWithLayer.md
+++ b/old_docs/API_docs_v33/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v33/methods/messages_acceptEncryption.md b/old_docs/API_docs_v33/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v33/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v33/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v33/methods/messages_addChatUser.md b/old_docs/API_docs_v33/methods/messages_addChatUser.md
index bc0d6253..b5e164b2 100644
--- a/old_docs/API_docs_v33/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v33/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
Updates = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v33/methods/messages_checkChatInvite.md b/old_docs/API_docs_v33/methods/messages_checkChatInvite.md
index de28b09b..0d13d55e 100644
--- a/old_docs/API_docs_v33/methods/messages_checkChatInvite.md
+++ b/old_docs/API_docs_v33/methods/messages_checkChatInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ChatInvite = messages.checkChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
diff --git a/old_docs/API_docs_v33/methods/messages_createChat.md b/old_docs/API_docs_v33/methods/messages_createChat.md
index 8f6e9672..b2623f1d 100644
--- a/old_docs/API_docs_v33/methods/messages_createChat.md
+++ b/old_docs/API_docs_v33/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v33/methods/messages_deleteChatUser.md b/old_docs/API_docs_v33/methods/messages_deleteChatUser.md
index 63529571..11b9b220 100644
--- a/old_docs/API_docs_v33/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v33/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v33/methods/messages_deleteHistory.md b/old_docs/API_docs_v33/methods/messages_deleteHistory.md
index b67a784a..0dfbcc70 100644
--- a/old_docs/API_docs_v33/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v33/methods/messages_deleteHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({peer=InputPeer, offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v33/methods/messages_deleteMessages.md b/old_docs/API_docs_v33/methods/messages_deleteMessages.md
index 6df3ffec..a0d79592 100644
--- a/old_docs/API_docs_v33/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v33/methods/messages_deleteMessages.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.deleteMessages({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v33/methods/messages_discardEncryption.md b/old_docs/API_docs_v33/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v33/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v33/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v33/methods/messages_editChatPhoto.md b/old_docs/API_docs_v33/methods/messages_editChatPhoto.md
index 2a82c232..a21a03b9 100644
--- a/old_docs/API_docs_v33/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v33/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Updates = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v33/methods/messages_editChatTitle.md b/old_docs/API_docs_v33/methods/messages_editChatTitle.md
index 2c338ad6..72f78741 100644
--- a/old_docs/API_docs_v33/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v33/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v33/methods/messages_exportChatInvite.md b/old_docs/API_docs_v33/methods/messages_exportChatInvite.md
index f3449e79..bc6272e4 100644
--- a/old_docs/API_docs_v33/methods/messages_exportChatInvite.md
+++ b/old_docs/API_docs_v33/methods/messages_exportChatInvite.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
ExportedChatInvite = messages.exportChatInvite({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v33/methods/messages_forwardMessage.md b/old_docs/API_docs_v33/methods/messages_forwardMessage.md
index c8e0b18d..95f6d2f3 100644
--- a/old_docs/API_docs_v33/methods/messages_forwardMessage.md
+++ b/old_docs/API_docs_v33/methods/messages_forwardMessage.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Updates = messages.forwardMessage({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|YOU_BLOCKED_USER|You blocked this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|YOU_BLOCKED_USER|You blocked this user|
diff --git a/old_docs/API_docs_v33/methods/messages_forwardMessages.md b/old_docs/API_docs_v33/methods/messages_forwardMessages.md
index 8cd4223b..b8e62557 100644
--- a/old_docs/API_docs_v33/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v33/methods/messages_forwardMessages.md
@@ -43,29 +43,29 @@ Or, if you're into Lua:
Updates = messages.forwardMessages({peer=InputPeer, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v33/methods/messages_getChats.md b/old_docs/API_docs_v33/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/old_docs/API_docs_v33/methods/messages_getChats.md
+++ b/old_docs/API_docs_v33/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v33/methods/messages_getDhConfig.md b/old_docs/API_docs_v33/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v33/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v33/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v33/methods/messages_getDialogs.md b/old_docs/API_docs_v33/methods/messages_getDialogs.md
index fc46f52a..89f3a989 100644
--- a/old_docs/API_docs_v33/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v33/methods/messages_getDialogs.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({offset=int, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v33/methods/messages_getFullChat.md b/old_docs/API_docs_v33/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v33/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v33/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v33/methods/messages_getHistory.md b/old_docs/API_docs_v33/methods/messages_getHistory.md
index 8d242e50..5801caa1 100644
--- a/old_docs/API_docs_v33/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v33/methods/messages_getHistory.md
@@ -45,16 +45,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset=int, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v33/methods/messages_getStickerSet.md b/old_docs/API_docs_v33/methods/messages_getStickerSet.md
index 57bce84d..487316cc 100644
--- a/old_docs/API_docs_v33/methods/messages_getStickerSet.md
+++ b/old_docs/API_docs_v33/methods/messages_getStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_StickerSet = messages.getStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v33/methods/messages_importChatInvite.md b/old_docs/API_docs_v33/methods/messages_importChatInvite.md
index 12120867..101b4b19 100644
--- a/old_docs/API_docs_v33/methods/messages_importChatInvite.md
+++ b/old_docs/API_docs_v33/methods/messages_importChatInvite.md
@@ -42,16 +42,16 @@ Or, if you're into Lua:
Updates = messages.importChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v33/methods/messages_installStickerSet.md b/old_docs/API_docs_v33/methods/messages_installStickerSet.md
index e1f691f2..3803f946 100644
--- a/old_docs/API_docs_v33/methods/messages_installStickerSet.md
+++ b/old_docs/API_docs_v33/methods/messages_installStickerSet.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.installStickerSet({stickerset=InputStickerSet, disabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v33/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v33/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v33/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v33/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v33/methods/messages_readHistory.md b/old_docs/API_docs_v33/methods/messages_readHistory.md
index 83f71826..6292f57c 100644
--- a/old_docs/API_docs_v33/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v33/methods/messages_readHistory.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.readHistory({peer=InputPeer, max_id=int, offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v33/methods/messages_receivedQueue.md b/old_docs/API_docs_v33/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v33/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v33/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v33/methods/messages_requestEncryption.md b/old_docs/API_docs_v33/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v33/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v33/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v33/methods/messages_search.md b/old_docs/API_docs_v33/methods/messages_search.md
index 5f5480cc..dc1b6934 100644
--- a/old_docs/API_docs_v33/methods/messages_search.md
+++ b/old_docs/API_docs_v33/methods/messages_search.md
@@ -49,16 +49,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({peer=InputPeer, q='string', filter=MessagesFilter, min_date=int, max_date=int, offset=int, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v33/methods/messages_sendEncrypted.md b/old_docs/API_docs_v33/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v33/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v33/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v33/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v33/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v33/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v33/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v33/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v33/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v33/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v33/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v33/methods/messages_sendMedia.md b/old_docs/API_docs_v33/methods/messages_sendMedia.md
index b19b41e1..cd48a7fa 100644
--- a/old_docs/API_docs_v33/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v33/methods/messages_sendMedia.md
@@ -51,31 +51,31 @@ Updates = messages.sendMedia({peer=InputPeer, reply_to_msg_id=int, media=InputMe
You can provide bot API reply_markup objects here.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v33/methods/messages_sendMessage.md b/old_docs/API_docs_v33/methods/messages_sendMessage.md
index 2beaa1b2..b3347f20 100644
--- a/old_docs/API_docs_v33/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v33/methods/messages_sendMessage.md
@@ -57,31 +57,31 @@ You can provide bot API reply_markup objects here.
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentMessage](../types/messages_SentMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v33/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v33/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v33/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v33/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v33/methods/messages_setTyping.md b/old_docs/API_docs_v33/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v33/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v33/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v33/methods/messages_startBot.md b/old_docs/API_docs_v33/methods/messages_startBot.md
index 983fa135..92c597bd 100644
--- a/old_docs/API_docs_v33/methods/messages_startBot.md
+++ b/old_docs/API_docs_v33/methods/messages_startBot.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = messages.startBot({bot=InputUser, chat_id=InputPeer, start_param='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INVALID|This is not a valid bot|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|START_PARAM_EMPTY|The start parameter is empty|
-|START_PARAM_INVALID|Start parameter invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INVALID|This is not a valid bot|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|START_PARAM_EMPTY|The start parameter is empty|
+|400|START_PARAM_INVALID|Start parameter invalid|
diff --git a/old_docs/API_docs_v33/methods/messages_uninstallStickerSet.md b/old_docs/API_docs_v33/methods/messages_uninstallStickerSet.md
index 59abc510..6b7a2006 100644
--- a/old_docs/API_docs_v33/methods/messages_uninstallStickerSet.md
+++ b/old_docs/API_docs_v33/methods/messages_uninstallStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.uninstallStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v33/methods/photos_getUserPhotos.md b/old_docs/API_docs_v33/methods/photos_getUserPhotos.md
index 57f5772b..a01f3180 100644
--- a/old_docs/API_docs_v33/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v33/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v33/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v33/methods/photos_updateProfilePhoto.md
index 53d0b12f..db7fe164 100644
--- a/old_docs/API_docs_v33/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v33/methods/photos_updateProfilePhoto.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, crop=InputPhotoCrop, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v33/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v33/methods/photos_uploadProfilePhoto.md
index f140329e..10653c42 100644
--- a/old_docs/API_docs_v33/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v33/methods/photos_uploadProfilePhoto.md
@@ -45,13 +45,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, caption='string', geo_point=InputGeoPoint, crop=InputPhotoCrop, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v33/methods/updates_getDifference.md b/old_docs/API_docs_v33/methods/updates_getDifference.md
index 33e7d7f2..57ea6d99 100644
--- a/old_docs/API_docs_v33/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v33/methods/updates_getDifference.md
@@ -7,8 +7,54 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v33/methods/updates_getState.md b/old_docs/API_docs_v33/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v33/methods/updates_getState.md
+++ b/old_docs/API_docs_v33/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v33/methods/upload_getFile.md b/old_docs/API_docs_v33/methods/upload_getFile.md
index c72e6090..d8b433d6 100644
--- a/old_docs/API_docs_v33/methods/upload_getFile.md
+++ b/old_docs/API_docs_v33/methods/upload_getFile.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v33/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v33/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v33/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v33/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v33/methods/upload_saveFilePart.md b/old_docs/API_docs_v33/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v33/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v33/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v33/methods/users_getFullUser.md b/old_docs/API_docs_v33/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v33/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v33/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v33/methods/users_getUsers.md b/old_docs/API_docs_v33/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v33/methods/users_getUsers.md
+++ b/old_docs/API_docs_v33/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v38/methods/README.md b/old_docs/API_docs_v38/methods/README.md
index cb2a2a69..a161eab6 100644
--- a/old_docs/API_docs_v38/methods/README.md
+++ b/old_docs/API_docs_v38/methods/README.md
@@ -30,241 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Add a sticker set: messages.installStickerSet
-
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add phone number as contact: contacts.importContacts
-
-* Add users to channel/supergroup: channels.inviteToChannel
-
-* Block a user: contacts.block
-
-* Change notification settings: account.updateNotifySettings
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if an invitation link is valid: messages.checkChatInvite
-
-* Check if this phone number is registered on telegram: auth.checkPhone
-
-* Check if this username is available: account.checkUsername
-
-* Check if this username is free and can be assigned to a channel/supergroup: channels.checkUsername
-
-* Create a chat (not supergroup): messages.createChat
-
-* Create channel/supergroup: channels.createChannel
-
-* Delete a certain session: account.resetAuthorization
-
-* Delete a channel/supergroup: channels.deleteChannel
-
-* Delete a contact: contacts.deleteContact
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete all messages of a user in a channel/supergroup: channels.deleteUserHistory
-
-* Delete channel/supergroup messages: channels.deleteMessages
-
-* Delete chat history: messages.deleteHistory
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete this account: account.deleteAccount
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Edit admin permissions of a user in a channel/supergroup: channels.editAdmin
-
-* Edit the about text of a channel/supergroup: channels.editAbout
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the photo of a supergroup/channel: channels.editPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Edit the title of a supergroup/channel: channels.editTitle
-
-* Enable channel comments: channels.toggleComments
-
-* Export chat invite : messages.exportChatInvite
-
-* Export contact as card: contacts.exportCard
-
-* Export the invite link of a channel: channels.exportInvite
-
-* Forward message: messages.forwardMessage
-
-* Forward messages: messages.forwardMessages
-
-* Get a stickerset: messages.getStickerSet
-
-* Get account TTL: account.getAccountTTL
-
-* Get all contacts: contacts.getContacts
-
-* Get all logged-in authorizations: account.getAuthorizations
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get and increase message views: messages.getMessagesViews
-
-* Get blocked users: contacts.getBlocked
-
-* Get channel dialogs: channels.getDialogs
-
-* Get channel/supergroup messages: channels.getMessages
-
-* Get channel/supergroup participants (you should use `$MadelineProto->get_pwr_chat($id)` instead): channels.getParticipants
-
-* Get important channel/supergroup history: channels.getImportantHistory
-
-* Get info about a certain channel/supergroup participant: channels.getParticipant
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about multiple channels/supergroups: channels.getChannels
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get invitation text: help.getInviteText
-
-* Get messages: messages.getMessages
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get server configuration: help.getConfig
-
-* Get stickers: messages.getStickers
-
-* Get suggested contacts: contacts.getSuggested
-
-* Get the changelog of this app: help.getAppChangelog
-
-* Get the current password: account.getPassword
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Get webpage preview: messages.getWebPagePreview
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Import card as contact: contacts.importCard
-
-* Import chat invite: messages.importChatInvite
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Invite friends to telegram!: auth.sendInvites
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invoke with method without returning updates in the socket: invokeWithoutUpdates
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Join a channel/supergroup: channels.joinChannel
-
-* Kick user from channel: channels.kickFromChannel
-
-* Leave a channel/supergroup: channels.leaveChannel
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark channel/supergroup history as read: channels.readHistory
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Register device for push notifications: account.registerDevice
-
-* Remove a sticker set: messages.uninstallStickerSet
-
-* Report a message in a supergroup/channel for spam: channels.reportSpam
-
-* Report a peer for spam: messages.reportSpam
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Search contacts: contacts.search
-
-* Search peers or messages: messages.search
-
-* Send SMS verification code: auth.sendSms
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message to all users in the chat list: messages.sendBroadcast
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send an email to recover the 2FA password: auth.requestPasswordRecovery
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Send verification phone call: auth.sendCall
-
-* Set account TTL: account.setAccountTTL
-
-* Set privacy settings: account.setPrivacy
-
-* Start a bot: messages.startBot
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update profile info: account.updateProfile
-
-* Update the username of a supergroup/channel: channels.updateUsername
-
-* Update this user's username: account.updateUsername
-
-* Upload profile photo: photos.uploadProfilePhoto
-
-* Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
-
diff --git a/old_docs/API_docs_v38/methods/account_changePhone.md b/old_docs/API_docs_v38/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/old_docs/API_docs_v38/methods/account_changePhone.md
+++ b/old_docs/API_docs_v38/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v38/methods/account_checkUsername.md b/old_docs/API_docs_v38/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v38/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v38/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v38/methods/account_getNotifySettings.md b/old_docs/API_docs_v38/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v38/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v38/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v38/methods/account_getPasswordSettings.md b/old_docs/API_docs_v38/methods/account_getPasswordSettings.md
index 8ebb78ee..8f878365 100644
--- a/old_docs/API_docs_v38/methods/account_getPasswordSettings.md
+++ b/old_docs/API_docs_v38/methods/account_getPasswordSettings.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+Get the current 2FA settings
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+### Return type: [account\_PasswordSettings](../types/account_PasswordSettings.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$account_PasswordSettings = $MadelineProto->account->getPasswordSettings(['current_password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+account_PasswordSettings = account.getPasswordSettings({current_password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v38/methods/account_getPrivacy.md b/old_docs/API_docs_v38/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/old_docs/API_docs_v38/methods/account_getPrivacy.md
+++ b/old_docs/API_docs_v38/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v38/methods/account_registerDevice.md b/old_docs/API_docs_v38/methods/account_registerDevice.md
index ab5a56a6..908977a3 100644
--- a/old_docs/API_docs_v38/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v38/methods/account_registerDevice.md
@@ -48,10 +48,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({token_type=int, token='string', device_model='string', system_version='string', app_version='string', app_sandbox=Bool, lang_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v38/methods/account_resetAuthorization.md b/old_docs/API_docs_v38/methods/account_resetAuthorization.md
index c950992c..e8e8ecc4 100644
--- a/old_docs/API_docs_v38/methods/account_resetAuthorization.md
+++ b/old_docs/API_docs_v38/methods/account_resetAuthorization.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.resetAuthorization({hash=long, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v38/methods/account_sendChangePhoneCode.md b/old_docs/API_docs_v38/methods/account_sendChangePhoneCode.md
index c4bc0675..8537d9d9 100644
--- a/old_docs/API_docs_v38/methods/account_sendChangePhoneCode.md
+++ b/old_docs/API_docs_v38/methods/account_sendChangePhoneCode.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_SentChangePhoneCode = account.sendChangePhoneCode({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v38/methods/account_setAccountTTL.md b/old_docs/API_docs_v38/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/old_docs/API_docs_v38/methods/account_setAccountTTL.md
+++ b/old_docs/API_docs_v38/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/old_docs/API_docs_v38/methods/account_setPrivacy.md b/old_docs/API_docs_v38/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/old_docs/API_docs_v38/methods/account_setPrivacy.md
+++ b/old_docs/API_docs_v38/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v38/methods/account_unregisterDevice.md b/old_docs/API_docs_v38/methods/account_unregisterDevice.md
index 589f48b0..a184da43 100644
--- a/old_docs/API_docs_v38/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v38/methods/account_unregisterDevice.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v38/methods/account_updateNotifySettings.md b/old_docs/API_docs_v38/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v38/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v38/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v38/methods/account_updatePasswordSettings.md b/old_docs/API_docs_v38/methods/account_updatePasswordSettings.md
index 80f27228..68e5da6d 100644
--- a/old_docs/API_docs_v38/methods/account_updatePasswordSettings.md
+++ b/old_docs/API_docs_v38/methods/account_updatePasswordSettings.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+|new\_settings|[account\_PasswordInputSettings](../types/account_PasswordInputSettings.md) | New 2FA settings | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->account->updatePasswordSettings(['current_password_hash' => 'bytes', 'new_settings' => account_PasswordInputSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = account.updatePasswordSettings({current_password_hash='bytes', new_settings=account_PasswordInputSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EMAIL_UNCONFIRMED|Email unconfirmed|
+|400|EMAIL_UNCONFIRMED_X|The provided email isn't confirmed, X is the length of the verification code that was just sent to the email.|
+|400|NEW_SALT_INVALID|The new salt is invalid|
+|400|NEW_SETTINGS_INVALID|The new settings are invalid|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v38/methods/account_updateProfile.md b/old_docs/API_docs_v38/methods/account_updateProfile.md
index 486f63bc..33423686 100644
--- a/old_docs/API_docs_v38/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v38/methods/account_updateProfile.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v38/methods/account_updateStatus.md b/old_docs/API_docs_v38/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v38/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v38/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v38/methods/account_updateUsername.md b/old_docs/API_docs_v38/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v38/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v38/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v38/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v38/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v38/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v38/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v38/methods/auth_checkPassword.md b/old_docs/API_docs_v38/methods/auth_checkPassword.md
index 8d76c483..db65cb56 100644
--- a/old_docs/API_docs_v38/methods/auth_checkPassword.md
+++ b/old_docs/API_docs_v38/methods/auth_checkPassword.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->checkPassword(['password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.checkPassword({password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v38/methods/auth_checkPhone.md b/old_docs/API_docs_v38/methods/auth_checkPhone.md
index f3e32365..e974ce7f 100644
--- a/old_docs/API_docs_v38/methods/auth_checkPhone.md
+++ b/old_docs/API_docs_v38/methods/auth_checkPhone.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
auth_CheckedPhone = auth.checkPhone({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v38/methods/auth_exportAuthorization.md b/old_docs/API_docs_v38/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v38/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v38/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v38/methods/auth_importAuthorization.md b/old_docs/API_docs_v38/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v38/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v38/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v38/methods/auth_importBotAuthorization.md b/old_docs/API_docs_v38/methods/auth_importBotAuthorization.md
index 1a98c1b9..98a2f8ca 100644
--- a/old_docs/API_docs_v38/methods/auth_importBotAuthorization.md
+++ b/old_docs/API_docs_v38/methods/auth_importBotAuthorization.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|api\_id|[int](../types/int.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_hash|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|bot\_auth\_token|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importBotAuthorization(['api_id' => int, 'api_hash' => 'string', 'bot_auth_token' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importBotAuthorization({api_id=int, api_hash='string', bot_auth_token='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ACCESS_TOKEN_EXPIRED|Access token expired|
+|400|ACCESS_TOKEN_INVALID|Access token invalid|
+|400|API_ID_INVALID|API ID invalid|
diff --git a/old_docs/API_docs_v38/methods/auth_logOut.md b/old_docs/API_docs_v38/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v38/methods/auth_logOut.md
+++ b/old_docs/API_docs_v38/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v38/methods/auth_recoverPassword.md b/old_docs/API_docs_v38/methods/auth_recoverPassword.md
index 83ff5aed..d4bad9c5 100644
--- a/old_docs/API_docs_v38/methods/auth_recoverPassword.md
+++ b/old_docs/API_docs_v38/methods/auth_recoverPassword.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
auth_Authorization = auth.recoverPassword({code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_EMPTY|The provided code is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_EMPTY|The provided code is empty|
diff --git a/old_docs/API_docs_v38/methods/auth_requestPasswordRecovery.md b/old_docs/API_docs_v38/methods/auth_requestPasswordRecovery.md
index 1864bbb0..b6ad57ba 100644
--- a/old_docs/API_docs_v38/methods/auth_requestPasswordRecovery.md
+++ b/old_docs/API_docs_v38/methods/auth_requestPasswordRecovery.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
auth_PasswordRecovery = auth.requestPasswordRecovery({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_EMPTY|The provided password is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_EMPTY|The provided password is empty|
diff --git a/old_docs/API_docs_v38/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v38/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v38/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v38/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v38/methods/auth_sendCode.md b/old_docs/API_docs_v38/methods/auth_sendCode.md
index 9afebb55..4e856d6a 100644
--- a/old_docs/API_docs_v38/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v38/methods/auth_sendCode.md
@@ -7,8 +7,59 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|sms\_type|[int](../types/int.md) | You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+|lang\_code|[string](../types/string.md) | You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['phone_number' => 'string', 'sms_type' => int, 'api_id' => int, 'api_hash' => 'string', 'lang_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({phone_number='string', sms_type=int, api_id=int, api_hash='string', lang_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v38/methods/auth_sendInvites.md b/old_docs/API_docs_v38/methods/auth_sendInvites.md
index e10c1109..4c11023e 100644
--- a/old_docs/API_docs_v38/methods/auth_sendInvites.md
+++ b/old_docs/API_docs_v38/methods/auth_sendInvites.md
@@ -49,10 +49,10 @@ Bool = auth.sendInvites({phone_numbers={'string'}, message='string', })
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_EMPTY|The provided message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_EMPTY|The provided message is empty|
diff --git a/old_docs/API_docs_v38/methods/auth_signIn.md b/old_docs/API_docs_v38/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v38/methods/auth_signIn.md
+++ b/old_docs/API_docs_v38/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v38/methods/auth_signUp.md b/old_docs/API_docs_v38/methods/auth_signUp.md
index 15960145..31154486 100644
--- a/old_docs/API_docs_v38/methods/auth_signUp.md
+++ b/old_docs/API_docs_v38/methods/auth_signUp.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', phone_code='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v38/methods/channels_checkUsername.md b/old_docs/API_docs_v38/methods/channels_checkUsername.md
index 483a2f6f..52365d34 100644
--- a/old_docs/API_docs_v38/methods/channels_checkUsername.md
+++ b/old_docs/API_docs_v38/methods/channels_checkUsername.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Bool = channels.checkUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v38/methods/channels_createChannel.md b/old_docs/API_docs_v38/methods/channels_createChannel.md
index 3fdb61be..bde3d1ed 100644
--- a/old_docs/API_docs_v38/methods/channels_createChannel.md
+++ b/old_docs/API_docs_v38/methods/channels_createChannel.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
Updates = channels.createChannel({title='string', about='string', users={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_TITLE_EMPTY|No chat title provided|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
+|406|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v38/methods/channels_deleteChannel.md b/old_docs/API_docs_v38/methods/channels_deleteChannel.md
index 53a9c23d..1b8d2d48 100644
--- a/old_docs/API_docs_v38/methods/channels_deleteChannel.md
+++ b/old_docs/API_docs_v38/methods/channels_deleteChannel.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Updates = channels.deleteChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v38/methods/channels_deleteMessages.md b/old_docs/API_docs_v38/methods/channels_deleteMessages.md
index f76a9ad1..463ebad0 100644
--- a/old_docs/API_docs_v38/methods/channels_deleteMessages.md
+++ b/old_docs/API_docs_v38/methods/channels_deleteMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_AffectedMessages = channels.deleteMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v38/methods/channels_deleteUserHistory.md b/old_docs/API_docs_v38/methods/channels_deleteUserHistory.md
index 0a4e7d82..33905a7e 100644
--- a/old_docs/API_docs_v38/methods/channels_deleteUserHistory.md
+++ b/old_docs/API_docs_v38/methods/channels_deleteUserHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedHistory = channels.deleteUserHistory({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v38/methods/channels_editAbout.md b/old_docs/API_docs_v38/methods/channels_editAbout.md
index 47111668..d5e090e0 100644
--- a/old_docs/API_docs_v38/methods/channels_editAbout.md
+++ b/old_docs/API_docs_v38/methods/channels_editAbout.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Bool = channels.editAbout({channel=InputChannel, about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
-|CHAT_ABOUT_TOO_LONG|Chat about too long|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
+|400|CHAT_ABOUT_TOO_LONG|Chat about too long|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v38/methods/channels_editAdmin.md b/old_docs/API_docs_v38/methods/channels_editAdmin.md
index aa760e29..b1c5c890 100644
--- a/old_docs/API_docs_v38/methods/channels_editAdmin.md
+++ b/old_docs/API_docs_v38/methods/channels_editAdmin.md
@@ -44,19 +44,19 @@ Or, if you're into Lua:
Bool = channels.editAdmin({channel=InputChannel, user_id=InputUser, role=ChannelParticipantRole, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ADMINS_TOO_MUCH|There are too many admins|
-|BOT_CHANNELS_NA|Bots can't edit admin privileges|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
-|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ADMINS_TOO_MUCH|There are too many admins|
+|400|BOT_CHANNELS_NA|Bots can't edit admin privileges|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
+|403|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v38/methods/channels_editPhoto.md b/old_docs/API_docs_v38/methods/channels_editPhoto.md
index bec0ba48..caef32d5 100644
--- a/old_docs/API_docs_v38/methods/channels_editPhoto.md
+++ b/old_docs/API_docs_v38/methods/channels_editPhoto.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editPhoto({channel=InputChannel, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|PHOTO_INVALID|Photo invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|PHOTO_INVALID|Photo invalid|
diff --git a/old_docs/API_docs_v38/methods/channels_editTitle.md b/old_docs/API_docs_v38/methods/channels_editTitle.md
index b5efeb39..d7cb33da 100644
--- a/old_docs/API_docs_v38/methods/channels_editTitle.md
+++ b/old_docs/API_docs_v38/methods/channels_editTitle.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editTitle({channel=InputChannel, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v38/methods/channels_exportInvite.md b/old_docs/API_docs_v38/methods/channels_exportInvite.md
index 0918b3e7..9d578deb 100644
--- a/old_docs/API_docs_v38/methods/channels_exportInvite.md
+++ b/old_docs/API_docs_v38/methods/channels_exportInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ExportedChatInvite = channels.exportInvite({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INVITE_HASH_EXPIRED|The invite link has expired|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
diff --git a/old_docs/API_docs_v38/methods/channels_getChannels.md b/old_docs/API_docs_v38/methods/channels_getChannels.md
index 78d50641..95d7a188 100644
--- a/old_docs/API_docs_v38/methods/channels_getChannels.md
+++ b/old_docs/API_docs_v38/methods/channels_getChannels.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = channels.getChannels({id={InputChannel}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v38/methods/channels_getFullChannel.md b/old_docs/API_docs_v38/methods/channels_getFullChannel.md
index 45a8ec72..ebd53de4 100644
--- a/old_docs/API_docs_v38/methods/channels_getFullChannel.md
+++ b/old_docs/API_docs_v38/methods/channels_getFullChannel.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->channels->getFullChannel(['channel' => InputChannel, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = channels.getFullChannel({channel=InputChannel, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v38/methods/channels_getMessages.md b/old_docs/API_docs_v38/methods/channels_getMessages.md
index aa85d640..57bcc60f 100644
--- a/old_docs/API_docs_v38/methods/channels_getMessages.md
+++ b/old_docs/API_docs_v38/methods/channels_getMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_Messages = channels.getMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
diff --git a/old_docs/API_docs_v38/methods/channels_getParticipant.md b/old_docs/API_docs_v38/methods/channels_getParticipant.md
index 6633114f..808156fd 100644
--- a/old_docs/API_docs_v38/methods/channels_getParticipant.md
+++ b/old_docs/API_docs_v38/methods/channels_getParticipant.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
channels_ChannelParticipant = channels.getParticipant({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v38/methods/channels_getParticipants.md b/old_docs/API_docs_v38/methods/channels_getParticipants.md
index d4bd8779..21d4a418 100644
--- a/old_docs/API_docs_v38/methods/channels_getParticipants.md
+++ b/old_docs/API_docs_v38/methods/channels_getParticipants.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, filter=ChannelParticipantsFilter, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v38/methods/channels_inviteToChannel.md b/old_docs/API_docs_v38/methods/channels_inviteToChannel.md
index f7093f13..d8c5e88a 100644
--- a/old_docs/API_docs_v38/methods/channels_inviteToChannel.md
+++ b/old_docs/API_docs_v38/methods/channels_inviteToChannel.md
@@ -43,25 +43,25 @@ Or, if you're into Lua:
Updates = channels.inviteToChannel({channel=InputChannel, users={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
-|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_BLOCKED|User blocked|
-|USER_BOT|Bots can only be admins in channels.|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_KICKED|This user was kicked from this supergroup/channel|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
+|400|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_BLOCKED|User blocked|
+|400|USER_BOT|Bots can only be admins in channels.|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_KICKED|This user was kicked from this supergroup/channel|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v38/methods/channels_joinChannel.md b/old_docs/API_docs_v38/methods/channels_joinChannel.md
index b056031a..a4a7c177 100644
--- a/old_docs/API_docs_v38/methods/channels_joinChannel.md
+++ b/old_docs/API_docs_v38/methods/channels_joinChannel.md
@@ -42,15 +42,15 @@ Or, if you're into Lua:
Updates = channels.joinChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
diff --git a/old_docs/API_docs_v38/methods/channels_leaveChannel.md b/old_docs/API_docs_v38/methods/channels_leaveChannel.md
index fdea13ba..6538d443 100644
--- a/old_docs/API_docs_v38/methods/channels_leaveChannel.md
+++ b/old_docs/API_docs_v38/methods/channels_leaveChannel.md
@@ -42,14 +42,14 @@ Or, if you're into Lua:
Updates = channels.leaveChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
-|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
diff --git a/old_docs/API_docs_v38/methods/channels_readHistory.md b/old_docs/API_docs_v38/methods/channels_readHistory.md
index 93dc075f..3532dae0 100644
--- a/old_docs/API_docs_v38/methods/channels_readHistory.md
+++ b/old_docs/API_docs_v38/methods/channels_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readHistory({channel=InputChannel, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v38/methods/channels_reportSpam.md b/old_docs/API_docs_v38/methods/channels_reportSpam.md
index db80676a..7e273cc5 100644
--- a/old_docs/API_docs_v38/methods/channels_reportSpam.md
+++ b/old_docs/API_docs_v38/methods/channels_reportSpam.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
Bool = channels.reportSpam({channel=InputChannel, user_id=InputUser, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
diff --git a/old_docs/API_docs_v38/methods/channels_updateUsername.md b/old_docs/API_docs_v38/methods/channels_updateUsername.md
index 677712f9..48d250e6 100644
--- a/old_docs/API_docs_v38/methods/channels_updateUsername.md
+++ b/old_docs/API_docs_v38/methods/channels_updateUsername.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Bool = channels.updateUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_OCCUPIED|The provided username is already occupied|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
diff --git a/old_docs/API_docs_v38/methods/contacts_block.md b/old_docs/API_docs_v38/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v38/methods/contacts_block.md
+++ b/old_docs/API_docs_v38/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v38/methods/contacts_deleteContact.md b/old_docs/API_docs_v38/methods/contacts_deleteContact.md
index ba9569e4..a9321d64 100644
--- a/old_docs/API_docs_v38/methods/contacts_deleteContact.md
+++ b/old_docs/API_docs_v38/methods/contacts_deleteContact.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
contacts_Link = contacts.deleteContact({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v38/methods/contacts_deleteContacts.md b/old_docs/API_docs_v38/methods/contacts_deleteContacts.md
index bfc91fdd..3c8e90f0 100644
--- a/old_docs/API_docs_v38/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v38/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v38/methods/contacts_getStatuses.md b/old_docs/API_docs_v38/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v38/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v38/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v38/methods/contacts_importCard.md b/old_docs/API_docs_v38/methods/contacts_importCard.md
index 15addde1..ed3d17fe 100644
--- a/old_docs/API_docs_v38/methods/contacts_importCard.md
+++ b/old_docs/API_docs_v38/methods/contacts_importCard.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
User = contacts.importCard({export_card={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|EXPORT_CARD_INVALID|Provided card is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EXPORT_CARD_INVALID|Provided card is invalid|
diff --git a/old_docs/API_docs_v38/methods/contacts_resolveUsername.md b/old_docs/API_docs_v38/methods/contacts_resolveUsername.md
index fab56bb1..68f709db 100644
--- a/old_docs/API_docs_v38/methods/contacts_resolveUsername.md
+++ b/old_docs/API_docs_v38/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [contacts\_ResolvedPeer](../types/contacts_ResolvedPeer.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$contacts_ResolvedPeer = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+contacts_ResolvedPeer = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v38/methods/contacts_search.md b/old_docs/API_docs_v38/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v38/methods/contacts_search.md
+++ b/old_docs/API_docs_v38/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v38/methods/contacts_unblock.md b/old_docs/API_docs_v38/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v38/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v38/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v38/methods/help_getConfig.md b/old_docs/API_docs_v38/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v38/methods/help_getConfig.md
+++ b/old_docs/API_docs_v38/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v38/methods/initConnection.md b/old_docs/API_docs_v38/methods/initConnection.md
index 659f4e6b..a41f0c4d 100644
--- a/old_docs/API_docs_v38/methods/initConnection.md
+++ b/old_docs/API_docs_v38/methods/initConnection.md
@@ -47,11 +47,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', lang_code='string', query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v38/methods/invokeWithLayer.md b/old_docs/API_docs_v38/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/old_docs/API_docs_v38/methods/invokeWithLayer.md
+++ b/old_docs/API_docs_v38/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v38/methods/messages_acceptEncryption.md b/old_docs/API_docs_v38/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v38/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v38/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v38/methods/messages_addChatUser.md b/old_docs/API_docs_v38/methods/messages_addChatUser.md
index bc0d6253..b5e164b2 100644
--- a/old_docs/API_docs_v38/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v38/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
Updates = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v38/methods/messages_checkChatInvite.md b/old_docs/API_docs_v38/methods/messages_checkChatInvite.md
index de28b09b..0d13d55e 100644
--- a/old_docs/API_docs_v38/methods/messages_checkChatInvite.md
+++ b/old_docs/API_docs_v38/methods/messages_checkChatInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ChatInvite = messages.checkChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
diff --git a/old_docs/API_docs_v38/methods/messages_createChat.md b/old_docs/API_docs_v38/methods/messages_createChat.md
index 8f6e9672..b2623f1d 100644
--- a/old_docs/API_docs_v38/methods/messages_createChat.md
+++ b/old_docs/API_docs_v38/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v38/methods/messages_deleteChatUser.md b/old_docs/API_docs_v38/methods/messages_deleteChatUser.md
index 63529571..11b9b220 100644
--- a/old_docs/API_docs_v38/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v38/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v38/methods/messages_deleteHistory.md b/old_docs/API_docs_v38/methods/messages_deleteHistory.md
index b67a784a..0dfbcc70 100644
--- a/old_docs/API_docs_v38/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v38/methods/messages_deleteHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({peer=InputPeer, offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v38/methods/messages_deleteMessages.md b/old_docs/API_docs_v38/methods/messages_deleteMessages.md
index 6df3ffec..a0d79592 100644
--- a/old_docs/API_docs_v38/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v38/methods/messages_deleteMessages.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.deleteMessages({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v38/methods/messages_discardEncryption.md b/old_docs/API_docs_v38/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v38/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v38/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v38/methods/messages_editChatPhoto.md b/old_docs/API_docs_v38/methods/messages_editChatPhoto.md
index 2a82c232..a21a03b9 100644
--- a/old_docs/API_docs_v38/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v38/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Updates = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v38/methods/messages_editChatTitle.md b/old_docs/API_docs_v38/methods/messages_editChatTitle.md
index 2c338ad6..72f78741 100644
--- a/old_docs/API_docs_v38/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v38/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v38/methods/messages_exportChatInvite.md b/old_docs/API_docs_v38/methods/messages_exportChatInvite.md
index f3449e79..bc6272e4 100644
--- a/old_docs/API_docs_v38/methods/messages_exportChatInvite.md
+++ b/old_docs/API_docs_v38/methods/messages_exportChatInvite.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
ExportedChatInvite = messages.exportChatInvite({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v38/methods/messages_forwardMessage.md b/old_docs/API_docs_v38/methods/messages_forwardMessage.md
index c8e0b18d..95f6d2f3 100644
--- a/old_docs/API_docs_v38/methods/messages_forwardMessage.md
+++ b/old_docs/API_docs_v38/methods/messages_forwardMessage.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Updates = messages.forwardMessage({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|YOU_BLOCKED_USER|You blocked this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|YOU_BLOCKED_USER|You blocked this user|
diff --git a/old_docs/API_docs_v38/methods/messages_forwardMessages.md b/old_docs/API_docs_v38/methods/messages_forwardMessages.md
index 6d3f7c70..df87dee9 100644
--- a/old_docs/API_docs_v38/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v38/methods/messages_forwardMessages.md
@@ -44,29 +44,29 @@ Or, if you're into Lua:
Updates = messages.forwardMessages({from_peer=InputPeer, id={int}, to_peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v38/methods/messages_getChats.md b/old_docs/API_docs_v38/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/old_docs/API_docs_v38/methods/messages_getChats.md
+++ b/old_docs/API_docs_v38/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v38/methods/messages_getDhConfig.md b/old_docs/API_docs_v38/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v38/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v38/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v38/methods/messages_getDialogs.md b/old_docs/API_docs_v38/methods/messages_getDialogs.md
index 967e42ce..05dddf22 100644
--- a/old_docs/API_docs_v38/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v38/methods/messages_getDialogs.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v38/methods/messages_getFullChat.md b/old_docs/API_docs_v38/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v38/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v38/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v38/methods/messages_getHistory.md b/old_docs/API_docs_v38/methods/messages_getHistory.md
index 2fc5d597..d23331cc 100644
--- a/old_docs/API_docs_v38/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v38/methods/messages_getHistory.md
@@ -47,16 +47,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v38/methods/messages_getMessagesViews.md b/old_docs/API_docs_v38/methods/messages_getMessagesViews.md
index 3d490315..143e568c 100644
--- a/old_docs/API_docs_v38/methods/messages_getMessagesViews.md
+++ b/old_docs/API_docs_v38/methods/messages_getMessagesViews.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
Vector_of_int = messages.getMessagesViews({peer=InputPeer, id={int}, increment=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v38/methods/messages_getStickerSet.md b/old_docs/API_docs_v38/methods/messages_getStickerSet.md
index 57bce84d..487316cc 100644
--- a/old_docs/API_docs_v38/methods/messages_getStickerSet.md
+++ b/old_docs/API_docs_v38/methods/messages_getStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_StickerSet = messages.getStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v38/methods/messages_importChatInvite.md b/old_docs/API_docs_v38/methods/messages_importChatInvite.md
index 12120867..101b4b19 100644
--- a/old_docs/API_docs_v38/methods/messages_importChatInvite.md
+++ b/old_docs/API_docs_v38/methods/messages_importChatInvite.md
@@ -42,16 +42,16 @@ Or, if you're into Lua:
Updates = messages.importChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v38/methods/messages_installStickerSet.md b/old_docs/API_docs_v38/methods/messages_installStickerSet.md
index e1f691f2..3803f946 100644
--- a/old_docs/API_docs_v38/methods/messages_installStickerSet.md
+++ b/old_docs/API_docs_v38/methods/messages_installStickerSet.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.installStickerSet({stickerset=InputStickerSet, disabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v38/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v38/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v38/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v38/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v38/methods/messages_readHistory.md b/old_docs/API_docs_v38/methods/messages_readHistory.md
index 83f71826..6292f57c 100644
--- a/old_docs/API_docs_v38/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v38/methods/messages_readHistory.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.readHistory({peer=InputPeer, max_id=int, offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v38/methods/messages_receivedQueue.md b/old_docs/API_docs_v38/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v38/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v38/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v38/methods/messages_reportSpam.md b/old_docs/API_docs_v38/methods/messages_reportSpam.md
index e92fba13..dc256e55 100644
--- a/old_docs/API_docs_v38/methods/messages_reportSpam.md
+++ b/old_docs/API_docs_v38/methods/messages_reportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v38/methods/messages_requestEncryption.md b/old_docs/API_docs_v38/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v38/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v38/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v38/methods/messages_search.md b/old_docs/API_docs_v38/methods/messages_search.md
index 5f5480cc..dc1b6934 100644
--- a/old_docs/API_docs_v38/methods/messages_search.md
+++ b/old_docs/API_docs_v38/methods/messages_search.md
@@ -49,16 +49,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({peer=InputPeer, q='string', filter=MessagesFilter, min_date=int, max_date=int, offset=int, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v38/methods/messages_sendEncrypted.md b/old_docs/API_docs_v38/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v38/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v38/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v38/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v38/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v38/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v38/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v38/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v38/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v38/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v38/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v38/methods/messages_sendMedia.md b/old_docs/API_docs_v38/methods/messages_sendMedia.md
index b19b41e1..cd48a7fa 100644
--- a/old_docs/API_docs_v38/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v38/methods/messages_sendMedia.md
@@ -51,31 +51,31 @@ Updates = messages.sendMedia({peer=InputPeer, reply_to_msg_id=int, media=InputMe
You can provide bot API reply_markup objects here.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v38/methods/messages_sendMessage.md b/old_docs/API_docs_v38/methods/messages_sendMessage.md
index 0361a637..82134883 100644
--- a/old_docs/API_docs_v38/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v38/methods/messages_sendMessage.md
@@ -95,31 +95,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v38/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v38/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v38/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v38/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v38/methods/messages_setTyping.md b/old_docs/API_docs_v38/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v38/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v38/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v38/methods/messages_startBot.md b/old_docs/API_docs_v38/methods/messages_startBot.md
index 983fa135..92c597bd 100644
--- a/old_docs/API_docs_v38/methods/messages_startBot.md
+++ b/old_docs/API_docs_v38/methods/messages_startBot.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = messages.startBot({bot=InputUser, chat_id=InputPeer, start_param='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INVALID|This is not a valid bot|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|START_PARAM_EMPTY|The start parameter is empty|
-|START_PARAM_INVALID|Start parameter invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INVALID|This is not a valid bot|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|START_PARAM_EMPTY|The start parameter is empty|
+|400|START_PARAM_INVALID|Start parameter invalid|
diff --git a/old_docs/API_docs_v38/methods/messages_uninstallStickerSet.md b/old_docs/API_docs_v38/methods/messages_uninstallStickerSet.md
index 59abc510..6b7a2006 100644
--- a/old_docs/API_docs_v38/methods/messages_uninstallStickerSet.md
+++ b/old_docs/API_docs_v38/methods/messages_uninstallStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.uninstallStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v38/methods/photos_getUserPhotos.md b/old_docs/API_docs_v38/methods/photos_getUserPhotos.md
index 57f5772b..a01f3180 100644
--- a/old_docs/API_docs_v38/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v38/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v38/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v38/methods/photos_updateProfilePhoto.md
index 53d0b12f..db7fe164 100644
--- a/old_docs/API_docs_v38/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v38/methods/photos_updateProfilePhoto.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, crop=InputPhotoCrop, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v38/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v38/methods/photos_uploadProfilePhoto.md
index f140329e..10653c42 100644
--- a/old_docs/API_docs_v38/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v38/methods/photos_uploadProfilePhoto.md
@@ -45,13 +45,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, caption='string', geo_point=InputGeoPoint, crop=InputPhotoCrop, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v38/methods/updates_getChannelDifference.md b/old_docs/API_docs_v38/methods/updates_getChannelDifference.md
index 6fa79529..08d497ed 100644
--- a/old_docs/API_docs_v38/methods/updates_getChannelDifference.md
+++ b/old_docs/API_docs_v38/methods/updates_getChannelDifference.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|filter|[ChannelMessagesFilter](../types/ChannelMessagesFilter.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_ChannelDifference](../types/updates_ChannelDifference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_ChannelDifference = $MadelineProto->updates->getChannelDifference(['channel' => InputChannel, 'filter' => ChannelMessagesFilter, 'pts' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_ChannelDifference = updates.getChannelDifference({channel=InputChannel, filter=ChannelMessagesFilter, pts=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|400|RANGES_INVALID|Invalid range provided|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v38/methods/updates_getDifference.md b/old_docs/API_docs_v38/methods/updates_getDifference.md
index 33e7d7f2..57ea6d99 100644
--- a/old_docs/API_docs_v38/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v38/methods/updates_getDifference.md
@@ -7,8 +7,54 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v38/methods/updates_getState.md b/old_docs/API_docs_v38/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v38/methods/updates_getState.md
+++ b/old_docs/API_docs_v38/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v38/methods/upload_getFile.md b/old_docs/API_docs_v38/methods/upload_getFile.md
index c72e6090..d8b433d6 100644
--- a/old_docs/API_docs_v38/methods/upload_getFile.md
+++ b/old_docs/API_docs_v38/methods/upload_getFile.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v38/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v38/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v38/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v38/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v38/methods/upload_saveFilePart.md b/old_docs/API_docs_v38/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v38/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v38/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v38/methods/users_getFullUser.md b/old_docs/API_docs_v38/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v38/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v38/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v38/methods/users_getUsers.md b/old_docs/API_docs_v38/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v38/methods/users_getUsers.md
+++ b/old_docs/API_docs_v38/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v40/methods/README.md b/old_docs/API_docs_v40/methods/README.md
index 180eeee6..a161eab6 100644
--- a/old_docs/API_docs_v40/methods/README.md
+++ b/old_docs/API_docs_v40/methods/README.md
@@ -30,199 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Add a sticker set: messages.installStickerSet
-
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add phone number as contact: contacts.importContacts
-
-* Block a user: contacts.block
-
-* Change notification settings: account.updateNotifySettings
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if an invitation link is valid: messages.checkChatInvite
-
-* Check if this phone number is registered on telegram: auth.checkPhone
-
-* Check if this username is available: account.checkUsername
-
-* Create a chat (not supergroup): messages.createChat
-
-* Create channel: messages.createChannel
-
-* Delete a certain session: account.resetAuthorization
-
-* Delete a contact: contacts.deleteContact
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete channel messages: messages.deleteChannelMessages
-
-* Delete chat history: messages.deleteHistory
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete this account: account.deleteAccount
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Export chat invite : messages.exportChatInvite
-
-* Export contact as card: contacts.exportCard
-
-* Forward message: messages.forwardMessage
-
-* Forward messages: messages.forwardMessages
-
-* Get a stickerset: messages.getStickerSet
-
-* Get account TTL: account.getAccountTTL
-
-* Get all contacts: contacts.getContacts
-
-* Get all logged-in authorizations: account.getAuthorizations
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get blocked users: contacts.getBlocked
-
-* Get channel/supergruop dialogs: messages.getChannelDialogs
-
-* Get important message history: messages.getImportantHistory
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get invitation text: help.getInviteText
-
-* Get messages: messages.getMessages
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get server configuration: help.getConfig
-
-* Get stickers: messages.getStickers
-
-* Get suggested contacts: contacts.getSuggested
-
-* Get the changelog of this app: help.getAppChangelog
-
-* Get the current password: account.getPassword
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Get webpage preview: messages.getWebPagePreview
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Import card as contact: contacts.importCard
-
-* Import chat invite: messages.importChatInvite
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Invite friends to telegram!: auth.sendInvites
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invoke with method without returning updates in the socket: invokeWithoutUpdates
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark channel/supergroup history as read: messages.readChannelHistory
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Register device for push notifications: account.registerDevice
-
-* Remove a sticker set: messages.uninstallStickerSet
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Search contacts: contacts.search
-
-* Search peers or messages: messages.search
-
-* Send SMS verification code: auth.sendSms
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message to all users in the chat list: messages.sendBroadcast
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send an email to recover the 2FA password: auth.requestPasswordRecovery
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Send verification phone call: auth.sendCall
-
-* Set account TTL: account.setAccountTTL
-
-* Set privacy settings: account.setPrivacy
-
-* Start a bot: messages.startBot
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update profile info: account.updateProfile
-
-* Update this user's username: account.updateUsername
-
-* Upload profile photo: photos.uploadProfilePhoto
-
-* Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
-
diff --git a/old_docs/API_docs_v40/methods/account_changePhone.md b/old_docs/API_docs_v40/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/old_docs/API_docs_v40/methods/account_changePhone.md
+++ b/old_docs/API_docs_v40/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v40/methods/account_checkUsername.md b/old_docs/API_docs_v40/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v40/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v40/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v40/methods/account_getNotifySettings.md b/old_docs/API_docs_v40/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v40/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v40/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v40/methods/account_getPasswordSettings.md b/old_docs/API_docs_v40/methods/account_getPasswordSettings.md
index 8ebb78ee..8f878365 100644
--- a/old_docs/API_docs_v40/methods/account_getPasswordSettings.md
+++ b/old_docs/API_docs_v40/methods/account_getPasswordSettings.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+Get the current 2FA settings
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+### Return type: [account\_PasswordSettings](../types/account_PasswordSettings.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$account_PasswordSettings = $MadelineProto->account->getPasswordSettings(['current_password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+account_PasswordSettings = account.getPasswordSettings({current_password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v40/methods/account_getPrivacy.md b/old_docs/API_docs_v40/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/old_docs/API_docs_v40/methods/account_getPrivacy.md
+++ b/old_docs/API_docs_v40/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v40/methods/account_registerDevice.md b/old_docs/API_docs_v40/methods/account_registerDevice.md
index ab5a56a6..908977a3 100644
--- a/old_docs/API_docs_v40/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v40/methods/account_registerDevice.md
@@ -48,10 +48,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({token_type=int, token='string', device_model='string', system_version='string', app_version='string', app_sandbox=Bool, lang_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v40/methods/account_resetAuthorization.md b/old_docs/API_docs_v40/methods/account_resetAuthorization.md
index c950992c..e8e8ecc4 100644
--- a/old_docs/API_docs_v40/methods/account_resetAuthorization.md
+++ b/old_docs/API_docs_v40/methods/account_resetAuthorization.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.resetAuthorization({hash=long, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v40/methods/account_sendChangePhoneCode.md b/old_docs/API_docs_v40/methods/account_sendChangePhoneCode.md
index c4bc0675..8537d9d9 100644
--- a/old_docs/API_docs_v40/methods/account_sendChangePhoneCode.md
+++ b/old_docs/API_docs_v40/methods/account_sendChangePhoneCode.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_SentChangePhoneCode = account.sendChangePhoneCode({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v40/methods/account_setAccountTTL.md b/old_docs/API_docs_v40/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/old_docs/API_docs_v40/methods/account_setAccountTTL.md
+++ b/old_docs/API_docs_v40/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/old_docs/API_docs_v40/methods/account_setPrivacy.md b/old_docs/API_docs_v40/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/old_docs/API_docs_v40/methods/account_setPrivacy.md
+++ b/old_docs/API_docs_v40/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v40/methods/account_unregisterDevice.md b/old_docs/API_docs_v40/methods/account_unregisterDevice.md
index 589f48b0..a184da43 100644
--- a/old_docs/API_docs_v40/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v40/methods/account_unregisterDevice.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v40/methods/account_updateNotifySettings.md b/old_docs/API_docs_v40/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v40/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v40/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v40/methods/account_updatePasswordSettings.md b/old_docs/API_docs_v40/methods/account_updatePasswordSettings.md
index 80f27228..68e5da6d 100644
--- a/old_docs/API_docs_v40/methods/account_updatePasswordSettings.md
+++ b/old_docs/API_docs_v40/methods/account_updatePasswordSettings.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+|new\_settings|[account\_PasswordInputSettings](../types/account_PasswordInputSettings.md) | New 2FA settings | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->account->updatePasswordSettings(['current_password_hash' => 'bytes', 'new_settings' => account_PasswordInputSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = account.updatePasswordSettings({current_password_hash='bytes', new_settings=account_PasswordInputSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EMAIL_UNCONFIRMED|Email unconfirmed|
+|400|EMAIL_UNCONFIRMED_X|The provided email isn't confirmed, X is the length of the verification code that was just sent to the email.|
+|400|NEW_SALT_INVALID|The new salt is invalid|
+|400|NEW_SETTINGS_INVALID|The new settings are invalid|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v40/methods/account_updateProfile.md b/old_docs/API_docs_v40/methods/account_updateProfile.md
index 486f63bc..33423686 100644
--- a/old_docs/API_docs_v40/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v40/methods/account_updateProfile.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v40/methods/account_updateStatus.md b/old_docs/API_docs_v40/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v40/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v40/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v40/methods/account_updateUsername.md b/old_docs/API_docs_v40/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v40/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v40/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v40/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v40/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v40/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v40/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v40/methods/auth_checkPassword.md b/old_docs/API_docs_v40/methods/auth_checkPassword.md
index 8d76c483..db65cb56 100644
--- a/old_docs/API_docs_v40/methods/auth_checkPassword.md
+++ b/old_docs/API_docs_v40/methods/auth_checkPassword.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->checkPassword(['password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.checkPassword({password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v40/methods/auth_checkPhone.md b/old_docs/API_docs_v40/methods/auth_checkPhone.md
index f3e32365..e974ce7f 100644
--- a/old_docs/API_docs_v40/methods/auth_checkPhone.md
+++ b/old_docs/API_docs_v40/methods/auth_checkPhone.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
auth_CheckedPhone = auth.checkPhone({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v40/methods/auth_exportAuthorization.md b/old_docs/API_docs_v40/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v40/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v40/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v40/methods/auth_importAuthorization.md b/old_docs/API_docs_v40/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v40/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v40/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v40/methods/auth_importBotAuthorization.md b/old_docs/API_docs_v40/methods/auth_importBotAuthorization.md
index 1a98c1b9..98a2f8ca 100644
--- a/old_docs/API_docs_v40/methods/auth_importBotAuthorization.md
+++ b/old_docs/API_docs_v40/methods/auth_importBotAuthorization.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|api\_id|[int](../types/int.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_hash|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|bot\_auth\_token|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importBotAuthorization(['api_id' => int, 'api_hash' => 'string', 'bot_auth_token' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importBotAuthorization({api_id=int, api_hash='string', bot_auth_token='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ACCESS_TOKEN_EXPIRED|Access token expired|
+|400|ACCESS_TOKEN_INVALID|Access token invalid|
+|400|API_ID_INVALID|API ID invalid|
diff --git a/old_docs/API_docs_v40/methods/auth_logOut.md b/old_docs/API_docs_v40/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v40/methods/auth_logOut.md
+++ b/old_docs/API_docs_v40/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v40/methods/auth_recoverPassword.md b/old_docs/API_docs_v40/methods/auth_recoverPassword.md
index 83ff5aed..d4bad9c5 100644
--- a/old_docs/API_docs_v40/methods/auth_recoverPassword.md
+++ b/old_docs/API_docs_v40/methods/auth_recoverPassword.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
auth_Authorization = auth.recoverPassword({code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_EMPTY|The provided code is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_EMPTY|The provided code is empty|
diff --git a/old_docs/API_docs_v40/methods/auth_requestPasswordRecovery.md b/old_docs/API_docs_v40/methods/auth_requestPasswordRecovery.md
index 1864bbb0..b6ad57ba 100644
--- a/old_docs/API_docs_v40/methods/auth_requestPasswordRecovery.md
+++ b/old_docs/API_docs_v40/methods/auth_requestPasswordRecovery.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
auth_PasswordRecovery = auth.requestPasswordRecovery({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_EMPTY|The provided password is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_EMPTY|The provided password is empty|
diff --git a/old_docs/API_docs_v40/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v40/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v40/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v40/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v40/methods/auth_sendCode.md b/old_docs/API_docs_v40/methods/auth_sendCode.md
index 9afebb55..4e856d6a 100644
--- a/old_docs/API_docs_v40/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v40/methods/auth_sendCode.md
@@ -7,8 +7,59 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|sms\_type|[int](../types/int.md) | You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+|lang\_code|[string](../types/string.md) | You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['phone_number' => 'string', 'sms_type' => int, 'api_id' => int, 'api_hash' => 'string', 'lang_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({phone_number='string', sms_type=int, api_id=int, api_hash='string', lang_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v40/methods/auth_sendInvites.md b/old_docs/API_docs_v40/methods/auth_sendInvites.md
index e10c1109..4c11023e 100644
--- a/old_docs/API_docs_v40/methods/auth_sendInvites.md
+++ b/old_docs/API_docs_v40/methods/auth_sendInvites.md
@@ -49,10 +49,10 @@ Bool = auth.sendInvites({phone_numbers={'string'}, message='string', })
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_EMPTY|The provided message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_EMPTY|The provided message is empty|
diff --git a/old_docs/API_docs_v40/methods/auth_signIn.md b/old_docs/API_docs_v40/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v40/methods/auth_signIn.md
+++ b/old_docs/API_docs_v40/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v40/methods/auth_signUp.md b/old_docs/API_docs_v40/methods/auth_signUp.md
index 15960145..31154486 100644
--- a/old_docs/API_docs_v40/methods/auth_signUp.md
+++ b/old_docs/API_docs_v40/methods/auth_signUp.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', phone_code='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v40/methods/contacts_block.md b/old_docs/API_docs_v40/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v40/methods/contacts_block.md
+++ b/old_docs/API_docs_v40/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v40/methods/contacts_deleteContact.md b/old_docs/API_docs_v40/methods/contacts_deleteContact.md
index ba9569e4..a9321d64 100644
--- a/old_docs/API_docs_v40/methods/contacts_deleteContact.md
+++ b/old_docs/API_docs_v40/methods/contacts_deleteContact.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
contacts_Link = contacts.deleteContact({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v40/methods/contacts_deleteContacts.md b/old_docs/API_docs_v40/methods/contacts_deleteContacts.md
index bfc91fdd..3c8e90f0 100644
--- a/old_docs/API_docs_v40/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v40/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v40/methods/contacts_getStatuses.md b/old_docs/API_docs_v40/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v40/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v40/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v40/methods/contacts_importCard.md b/old_docs/API_docs_v40/methods/contacts_importCard.md
index 15addde1..ed3d17fe 100644
--- a/old_docs/API_docs_v40/methods/contacts_importCard.md
+++ b/old_docs/API_docs_v40/methods/contacts_importCard.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
User = contacts.importCard({export_card={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|EXPORT_CARD_INVALID|Provided card is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EXPORT_CARD_INVALID|Provided card is invalid|
diff --git a/old_docs/API_docs_v40/methods/contacts_resolveUsername.md b/old_docs/API_docs_v40/methods/contacts_resolveUsername.md
index fab56bb1..ade7ca48 100644
--- a/old_docs/API_docs_v40/methods/contacts_resolveUsername.md
+++ b/old_docs/API_docs_v40/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [User](../types/User.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$User = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+User = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v40/methods/contacts_search.md b/old_docs/API_docs_v40/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v40/methods/contacts_search.md
+++ b/old_docs/API_docs_v40/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v40/methods/contacts_unblock.md b/old_docs/API_docs_v40/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v40/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v40/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v40/methods/help_getConfig.md b/old_docs/API_docs_v40/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v40/methods/help_getConfig.md
+++ b/old_docs/API_docs_v40/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v40/methods/initConnection.md b/old_docs/API_docs_v40/methods/initConnection.md
index 659f4e6b..a41f0c4d 100644
--- a/old_docs/API_docs_v40/methods/initConnection.md
+++ b/old_docs/API_docs_v40/methods/initConnection.md
@@ -47,11 +47,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', lang_code='string', query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v40/methods/invokeWithLayer.md b/old_docs/API_docs_v40/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/old_docs/API_docs_v40/methods/invokeWithLayer.md
+++ b/old_docs/API_docs_v40/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v40/methods/messages_acceptEncryption.md b/old_docs/API_docs_v40/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v40/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v40/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v40/methods/messages_addChatUser.md b/old_docs/API_docs_v40/methods/messages_addChatUser.md
index bc0d6253..b5e164b2 100644
--- a/old_docs/API_docs_v40/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v40/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
Updates = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v40/methods/messages_checkChatInvite.md b/old_docs/API_docs_v40/methods/messages_checkChatInvite.md
index de28b09b..0d13d55e 100644
--- a/old_docs/API_docs_v40/methods/messages_checkChatInvite.md
+++ b/old_docs/API_docs_v40/methods/messages_checkChatInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ChatInvite = messages.checkChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
diff --git a/old_docs/API_docs_v40/methods/messages_createChat.md b/old_docs/API_docs_v40/methods/messages_createChat.md
index 8f6e9672..b2623f1d 100644
--- a/old_docs/API_docs_v40/methods/messages_createChat.md
+++ b/old_docs/API_docs_v40/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v40/methods/messages_deleteChatUser.md b/old_docs/API_docs_v40/methods/messages_deleteChatUser.md
index 63529571..11b9b220 100644
--- a/old_docs/API_docs_v40/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v40/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v40/methods/messages_deleteHistory.md b/old_docs/API_docs_v40/methods/messages_deleteHistory.md
index b67a784a..0dfbcc70 100644
--- a/old_docs/API_docs_v40/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v40/methods/messages_deleteHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({peer=InputPeer, offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v40/methods/messages_deleteMessages.md b/old_docs/API_docs_v40/methods/messages_deleteMessages.md
index 6df3ffec..a0d79592 100644
--- a/old_docs/API_docs_v40/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v40/methods/messages_deleteMessages.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.deleteMessages({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v40/methods/messages_discardEncryption.md b/old_docs/API_docs_v40/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v40/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v40/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v40/methods/messages_editChatPhoto.md b/old_docs/API_docs_v40/methods/messages_editChatPhoto.md
index 2a82c232..a21a03b9 100644
--- a/old_docs/API_docs_v40/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v40/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Updates = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v40/methods/messages_editChatTitle.md b/old_docs/API_docs_v40/methods/messages_editChatTitle.md
index 2c338ad6..72f78741 100644
--- a/old_docs/API_docs_v40/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v40/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v40/methods/messages_exportChatInvite.md b/old_docs/API_docs_v40/methods/messages_exportChatInvite.md
index f3449e79..bc6272e4 100644
--- a/old_docs/API_docs_v40/methods/messages_exportChatInvite.md
+++ b/old_docs/API_docs_v40/methods/messages_exportChatInvite.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
ExportedChatInvite = messages.exportChatInvite({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v40/methods/messages_forwardMessage.md b/old_docs/API_docs_v40/methods/messages_forwardMessage.md
index c8e0b18d..95f6d2f3 100644
--- a/old_docs/API_docs_v40/methods/messages_forwardMessage.md
+++ b/old_docs/API_docs_v40/methods/messages_forwardMessage.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Updates = messages.forwardMessage({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|YOU_BLOCKED_USER|You blocked this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|YOU_BLOCKED_USER|You blocked this user|
diff --git a/old_docs/API_docs_v40/methods/messages_forwardMessages.md b/old_docs/API_docs_v40/methods/messages_forwardMessages.md
index 8cd4223b..b8e62557 100644
--- a/old_docs/API_docs_v40/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v40/methods/messages_forwardMessages.md
@@ -43,29 +43,29 @@ Or, if you're into Lua:
Updates = messages.forwardMessages({peer=InputPeer, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v40/methods/messages_getChats.md b/old_docs/API_docs_v40/methods/messages_getChats.md
index 0f8aa904..bb77707a 100644
--- a/old_docs/API_docs_v40/methods/messages_getChats.md
+++ b/old_docs/API_docs_v40/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={InputChat}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v40/methods/messages_getDhConfig.md b/old_docs/API_docs_v40/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v40/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v40/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v40/methods/messages_getDialogs.md b/old_docs/API_docs_v40/methods/messages_getDialogs.md
index 967e42ce..05dddf22 100644
--- a/old_docs/API_docs_v40/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v40/methods/messages_getDialogs.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v40/methods/messages_getFullChat.md b/old_docs/API_docs_v40/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v40/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v40/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v40/methods/messages_getHistory.md b/old_docs/API_docs_v40/methods/messages_getHistory.md
index 9c1c5909..9be600c4 100644
--- a/old_docs/API_docs_v40/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v40/methods/messages_getHistory.md
@@ -46,16 +46,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset=int, max_id=int, min_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v40/methods/messages_getStickerSet.md b/old_docs/API_docs_v40/methods/messages_getStickerSet.md
index 57bce84d..487316cc 100644
--- a/old_docs/API_docs_v40/methods/messages_getStickerSet.md
+++ b/old_docs/API_docs_v40/methods/messages_getStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_StickerSet = messages.getStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v40/methods/messages_importChatInvite.md b/old_docs/API_docs_v40/methods/messages_importChatInvite.md
index 12120867..101b4b19 100644
--- a/old_docs/API_docs_v40/methods/messages_importChatInvite.md
+++ b/old_docs/API_docs_v40/methods/messages_importChatInvite.md
@@ -42,16 +42,16 @@ Or, if you're into Lua:
Updates = messages.importChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v40/methods/messages_installStickerSet.md b/old_docs/API_docs_v40/methods/messages_installStickerSet.md
index e1f691f2..3803f946 100644
--- a/old_docs/API_docs_v40/methods/messages_installStickerSet.md
+++ b/old_docs/API_docs_v40/methods/messages_installStickerSet.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.installStickerSet({stickerset=InputStickerSet, disabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v40/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v40/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v40/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v40/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v40/methods/messages_readHistory.md b/old_docs/API_docs_v40/methods/messages_readHistory.md
index 83f71826..6292f57c 100644
--- a/old_docs/API_docs_v40/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v40/methods/messages_readHistory.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.readHistory({peer=InputPeer, max_id=int, offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v40/methods/messages_receivedQueue.md b/old_docs/API_docs_v40/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v40/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v40/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v40/methods/messages_requestEncryption.md b/old_docs/API_docs_v40/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v40/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v40/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v40/methods/messages_search.md b/old_docs/API_docs_v40/methods/messages_search.md
index 5f5480cc..dc1b6934 100644
--- a/old_docs/API_docs_v40/methods/messages_search.md
+++ b/old_docs/API_docs_v40/methods/messages_search.md
@@ -49,16 +49,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({peer=InputPeer, q='string', filter=MessagesFilter, min_date=int, max_date=int, offset=int, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v40/methods/messages_sendEncrypted.md b/old_docs/API_docs_v40/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v40/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v40/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v40/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v40/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v40/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v40/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v40/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v40/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v40/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v40/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v40/methods/messages_sendMedia.md b/old_docs/API_docs_v40/methods/messages_sendMedia.md
index b19b41e1..cd48a7fa 100644
--- a/old_docs/API_docs_v40/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v40/methods/messages_sendMedia.md
@@ -51,31 +51,31 @@ Updates = messages.sendMedia({peer=InputPeer, reply_to_msg_id=int, media=InputMe
You can provide bot API reply_markup objects here.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v40/methods/messages_sendMessage.md b/old_docs/API_docs_v40/methods/messages_sendMessage.md
index 0361a637..82134883 100644
--- a/old_docs/API_docs_v40/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v40/methods/messages_sendMessage.md
@@ -95,31 +95,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v40/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v40/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v40/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v40/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v40/methods/messages_setTyping.md b/old_docs/API_docs_v40/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v40/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v40/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v40/methods/messages_startBot.md b/old_docs/API_docs_v40/methods/messages_startBot.md
index 983fa135..92c597bd 100644
--- a/old_docs/API_docs_v40/methods/messages_startBot.md
+++ b/old_docs/API_docs_v40/methods/messages_startBot.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = messages.startBot({bot=InputUser, chat_id=InputPeer, start_param='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INVALID|This is not a valid bot|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|START_PARAM_EMPTY|The start parameter is empty|
-|START_PARAM_INVALID|Start parameter invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INVALID|This is not a valid bot|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|START_PARAM_EMPTY|The start parameter is empty|
+|400|START_PARAM_INVALID|Start parameter invalid|
diff --git a/old_docs/API_docs_v40/methods/messages_uninstallStickerSet.md b/old_docs/API_docs_v40/methods/messages_uninstallStickerSet.md
index 59abc510..6b7a2006 100644
--- a/old_docs/API_docs_v40/methods/messages_uninstallStickerSet.md
+++ b/old_docs/API_docs_v40/methods/messages_uninstallStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.uninstallStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v40/methods/photos_getUserPhotos.md b/old_docs/API_docs_v40/methods/photos_getUserPhotos.md
index 57f5772b..a01f3180 100644
--- a/old_docs/API_docs_v40/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v40/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v40/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v40/methods/photos_updateProfilePhoto.md
index 53d0b12f..db7fe164 100644
--- a/old_docs/API_docs_v40/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v40/methods/photos_updateProfilePhoto.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, crop=InputPhotoCrop, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v40/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v40/methods/photos_uploadProfilePhoto.md
index f140329e..10653c42 100644
--- a/old_docs/API_docs_v40/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v40/methods/photos_uploadProfilePhoto.md
@@ -45,13 +45,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, caption='string', geo_point=InputGeoPoint, crop=InputPhotoCrop, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v40/methods/updates_getChannelDifference.md b/old_docs/API_docs_v40/methods/updates_getChannelDifference.md
index 6fa79529..67eec952 100644
--- a/old_docs/API_docs_v40/methods/updates_getChannelDifference.md
+++ b/old_docs/API_docs_v40/methods/updates_getChannelDifference.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|filter|[ChannelMessagesFilter](../types/ChannelMessagesFilter.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_ChannelDifference](../types/updates_ChannelDifference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_ChannelDifference = $MadelineProto->updates->getChannelDifference(['peer' => InputPeer, 'filter' => ChannelMessagesFilter, 'pts' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_ChannelDifference = updates.getChannelDifference({peer=InputPeer, filter=ChannelMessagesFilter, pts=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|400|RANGES_INVALID|Invalid range provided|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v40/methods/updates_getDifference.md b/old_docs/API_docs_v40/methods/updates_getDifference.md
index 33e7d7f2..57ea6d99 100644
--- a/old_docs/API_docs_v40/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v40/methods/updates_getDifference.md
@@ -7,8 +7,54 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v40/methods/updates_getState.md b/old_docs/API_docs_v40/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v40/methods/updates_getState.md
+++ b/old_docs/API_docs_v40/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v40/methods/upload_getFile.md b/old_docs/API_docs_v40/methods/upload_getFile.md
index c72e6090..d8b433d6 100644
--- a/old_docs/API_docs_v40/methods/upload_getFile.md
+++ b/old_docs/API_docs_v40/methods/upload_getFile.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v40/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v40/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v40/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v40/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v40/methods/upload_saveFilePart.md b/old_docs/API_docs_v40/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v40/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v40/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v40/methods/users_getFullUser.md b/old_docs/API_docs_v40/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v40/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v40/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v40/methods/users_getUsers.md b/old_docs/API_docs_v40/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v40/methods/users_getUsers.md
+++ b/old_docs/API_docs_v40/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v41/methods/README.md b/old_docs/API_docs_v41/methods/README.md
index f27fab4b..a161eab6 100644
--- a/old_docs/API_docs_v41/methods/README.md
+++ b/old_docs/API_docs_v41/methods/README.md
@@ -30,251 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Add a sticker set: messages.installStickerSet
-
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add phone number as contact: contacts.importContacts
-
-* Add users to channel/supergroup: channels.inviteToChannel
-
-* Block a user: contacts.block
-
-* Change notification settings: account.updateNotifySettings
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if an invitation link is valid: messages.checkChatInvite
-
-* Check if this phone number is registered on telegram: auth.checkPhone
-
-* Check if this username is available: account.checkUsername
-
-* Check if this username is free and can be assigned to a channel/supergroup: channels.checkUsername
-
-* Convert chat to supergroup: messages.migrateChat
-
-* Create a chat (not supergroup): messages.createChat
-
-* Create channel/supergroup: channels.createChannel
-
-* Deactivate chat: messages.deactivateChat
-
-* Delete a certain session: account.resetAuthorization
-
-* Delete a channel/supergroup: channels.deleteChannel
-
-* Delete a contact: contacts.deleteContact
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete all messages of a user in a channel/supergroup: channels.deleteUserHistory
-
-* Delete channel/supergroup messages: channels.deleteMessages
-
-* Delete chat history: messages.deleteHistory
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete this account: account.deleteAccount
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Edit admin permissions of a user in a channel/supergroup: channels.editAdmin
-
-* Edit admin permissions: messages.editChatAdmin
-
-* Edit the about text of a channel/supergroup: channels.editAbout
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the photo of a supergroup/channel: channels.editPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Edit the title of a supergroup/channel: channels.editTitle
-
-* Enable all users are admins in normal groups (not supergroups): messages.toggleChatAdmins
-
-* Enable channel comments: channels.toggleComments
-
-* Export chat invite : messages.exportChatInvite
-
-* Export contact as card: contacts.exportCard
-
-* Export the invite link of a channel: channels.exportInvite
-
-* Forward message: messages.forwardMessage
-
-* Forward messages: messages.forwardMessages
-
-* Get a stickerset: messages.getStickerSet
-
-* Get account TTL: account.getAccountTTL
-
-* Get all contacts: contacts.getContacts
-
-* Get all logged-in authorizations: account.getAuthorizations
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get and increase message views: messages.getMessagesViews
-
-* Get blocked users: contacts.getBlocked
-
-* Get channel dialogs: channels.getDialogs
-
-* Get channel/supergroup messages: channels.getMessages
-
-* Get channel/supergroup participants (you should use `$MadelineProto->get_pwr_chat($id)` instead): channels.getParticipants
-
-* Get important channel/supergroup history: channels.getImportantHistory
-
-* Get info about a certain channel/supergroup participant: channels.getParticipant
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about multiple channels/supergroups: channels.getChannels
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get invitation text: help.getInviteText
-
-* Get messages: messages.getMessages
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get server configuration: help.getConfig
-
-* Get stickers: messages.getStickers
-
-* Get suggested contacts: contacts.getSuggested
-
-* Get the changelog of this app: help.getAppChangelog
-
-* Get the current password: account.getPassword
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Get webpage preview: messages.getWebPagePreview
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Global message search: messages.searchGlobal
-
-* Import card as contact: contacts.importCard
-
-* Import chat invite: messages.importChatInvite
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Invite friends to telegram!: auth.sendInvites
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invoke with method without returning updates in the socket: invokeWithoutUpdates
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Join a channel/supergroup: channels.joinChannel
-
-* Kick user from channel: channels.kickFromChannel
-
-* Leave a channel/supergroup: channels.leaveChannel
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark channel/supergroup history as read: channels.readHistory
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Register device for push notifications: account.registerDevice
-
-* Remove a sticker set: messages.uninstallStickerSet
-
-* Report a message in a supergroup/channel for spam: channels.reportSpam
-
-* Report a peer for spam: messages.reportSpam
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Search contacts: contacts.search
-
-* Search peers or messages: messages.search
-
-* Send SMS verification code: auth.sendSms
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message to all users in the chat list: messages.sendBroadcast
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send an email to recover the 2FA password: auth.requestPasswordRecovery
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Send verification phone call: auth.sendCall
-
-* Set account TTL: account.setAccountTTL
-
-* Set privacy settings: account.setPrivacy
-
-* Start a bot: messages.startBot
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update profile info: account.updateProfile
-
-* Update the username of a supergroup/channel: channels.updateUsername
-
-* Update this user's username: account.updateUsername
-
-* Upload profile photo: photos.uploadProfilePhoto
-
-* Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
-
diff --git a/old_docs/API_docs_v41/methods/account_changePhone.md b/old_docs/API_docs_v41/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/old_docs/API_docs_v41/methods/account_changePhone.md
+++ b/old_docs/API_docs_v41/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v41/methods/account_checkUsername.md b/old_docs/API_docs_v41/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v41/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v41/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v41/methods/account_getNotifySettings.md b/old_docs/API_docs_v41/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v41/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v41/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v41/methods/account_getPasswordSettings.md b/old_docs/API_docs_v41/methods/account_getPasswordSettings.md
index 8ebb78ee..8f878365 100644
--- a/old_docs/API_docs_v41/methods/account_getPasswordSettings.md
+++ b/old_docs/API_docs_v41/methods/account_getPasswordSettings.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+Get the current 2FA settings
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+### Return type: [account\_PasswordSettings](../types/account_PasswordSettings.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$account_PasswordSettings = $MadelineProto->account->getPasswordSettings(['current_password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+account_PasswordSettings = account.getPasswordSettings({current_password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v41/methods/account_getPrivacy.md b/old_docs/API_docs_v41/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/old_docs/API_docs_v41/methods/account_getPrivacy.md
+++ b/old_docs/API_docs_v41/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v41/methods/account_registerDevice.md b/old_docs/API_docs_v41/methods/account_registerDevice.md
index ab5a56a6..908977a3 100644
--- a/old_docs/API_docs_v41/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v41/methods/account_registerDevice.md
@@ -48,10 +48,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({token_type=int, token='string', device_model='string', system_version='string', app_version='string', app_sandbox=Bool, lang_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v41/methods/account_resetAuthorization.md b/old_docs/API_docs_v41/methods/account_resetAuthorization.md
index c950992c..e8e8ecc4 100644
--- a/old_docs/API_docs_v41/methods/account_resetAuthorization.md
+++ b/old_docs/API_docs_v41/methods/account_resetAuthorization.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.resetAuthorization({hash=long, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v41/methods/account_sendChangePhoneCode.md b/old_docs/API_docs_v41/methods/account_sendChangePhoneCode.md
index c4bc0675..8537d9d9 100644
--- a/old_docs/API_docs_v41/methods/account_sendChangePhoneCode.md
+++ b/old_docs/API_docs_v41/methods/account_sendChangePhoneCode.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_SentChangePhoneCode = account.sendChangePhoneCode({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v41/methods/account_setAccountTTL.md b/old_docs/API_docs_v41/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/old_docs/API_docs_v41/methods/account_setAccountTTL.md
+++ b/old_docs/API_docs_v41/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/old_docs/API_docs_v41/methods/account_setPrivacy.md b/old_docs/API_docs_v41/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/old_docs/API_docs_v41/methods/account_setPrivacy.md
+++ b/old_docs/API_docs_v41/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v41/methods/account_unregisterDevice.md b/old_docs/API_docs_v41/methods/account_unregisterDevice.md
index 589f48b0..a184da43 100644
--- a/old_docs/API_docs_v41/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v41/methods/account_unregisterDevice.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v41/methods/account_updateNotifySettings.md b/old_docs/API_docs_v41/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v41/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v41/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v41/methods/account_updatePasswordSettings.md b/old_docs/API_docs_v41/methods/account_updatePasswordSettings.md
index 80f27228..68e5da6d 100644
--- a/old_docs/API_docs_v41/methods/account_updatePasswordSettings.md
+++ b/old_docs/API_docs_v41/methods/account_updatePasswordSettings.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+|new\_settings|[account\_PasswordInputSettings](../types/account_PasswordInputSettings.md) | New 2FA settings | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->account->updatePasswordSettings(['current_password_hash' => 'bytes', 'new_settings' => account_PasswordInputSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = account.updatePasswordSettings({current_password_hash='bytes', new_settings=account_PasswordInputSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EMAIL_UNCONFIRMED|Email unconfirmed|
+|400|EMAIL_UNCONFIRMED_X|The provided email isn't confirmed, X is the length of the verification code that was just sent to the email.|
+|400|NEW_SALT_INVALID|The new salt is invalid|
+|400|NEW_SETTINGS_INVALID|The new settings are invalid|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v41/methods/account_updateProfile.md b/old_docs/API_docs_v41/methods/account_updateProfile.md
index 486f63bc..33423686 100644
--- a/old_docs/API_docs_v41/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v41/methods/account_updateProfile.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v41/methods/account_updateStatus.md b/old_docs/API_docs_v41/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v41/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v41/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v41/methods/account_updateUsername.md b/old_docs/API_docs_v41/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v41/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v41/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v41/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v41/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v41/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v41/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v41/methods/auth_checkPassword.md b/old_docs/API_docs_v41/methods/auth_checkPassword.md
index 8d76c483..db65cb56 100644
--- a/old_docs/API_docs_v41/methods/auth_checkPassword.md
+++ b/old_docs/API_docs_v41/methods/auth_checkPassword.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->checkPassword(['password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.checkPassword({password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v41/methods/auth_checkPhone.md b/old_docs/API_docs_v41/methods/auth_checkPhone.md
index f3e32365..e974ce7f 100644
--- a/old_docs/API_docs_v41/methods/auth_checkPhone.md
+++ b/old_docs/API_docs_v41/methods/auth_checkPhone.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
auth_CheckedPhone = auth.checkPhone({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v41/methods/auth_exportAuthorization.md b/old_docs/API_docs_v41/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v41/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v41/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v41/methods/auth_importAuthorization.md b/old_docs/API_docs_v41/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v41/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v41/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v41/methods/auth_importBotAuthorization.md b/old_docs/API_docs_v41/methods/auth_importBotAuthorization.md
index 1a98c1b9..98a2f8ca 100644
--- a/old_docs/API_docs_v41/methods/auth_importBotAuthorization.md
+++ b/old_docs/API_docs_v41/methods/auth_importBotAuthorization.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|api\_id|[int](../types/int.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_hash|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|bot\_auth\_token|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importBotAuthorization(['api_id' => int, 'api_hash' => 'string', 'bot_auth_token' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importBotAuthorization({api_id=int, api_hash='string', bot_auth_token='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ACCESS_TOKEN_EXPIRED|Access token expired|
+|400|ACCESS_TOKEN_INVALID|Access token invalid|
+|400|API_ID_INVALID|API ID invalid|
diff --git a/old_docs/API_docs_v41/methods/auth_logOut.md b/old_docs/API_docs_v41/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v41/methods/auth_logOut.md
+++ b/old_docs/API_docs_v41/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v41/methods/auth_recoverPassword.md b/old_docs/API_docs_v41/methods/auth_recoverPassword.md
index 83ff5aed..d4bad9c5 100644
--- a/old_docs/API_docs_v41/methods/auth_recoverPassword.md
+++ b/old_docs/API_docs_v41/methods/auth_recoverPassword.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
auth_Authorization = auth.recoverPassword({code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_EMPTY|The provided code is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_EMPTY|The provided code is empty|
diff --git a/old_docs/API_docs_v41/methods/auth_requestPasswordRecovery.md b/old_docs/API_docs_v41/methods/auth_requestPasswordRecovery.md
index 1864bbb0..b6ad57ba 100644
--- a/old_docs/API_docs_v41/methods/auth_requestPasswordRecovery.md
+++ b/old_docs/API_docs_v41/methods/auth_requestPasswordRecovery.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
auth_PasswordRecovery = auth.requestPasswordRecovery({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_EMPTY|The provided password is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_EMPTY|The provided password is empty|
diff --git a/old_docs/API_docs_v41/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v41/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v41/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v41/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v41/methods/auth_sendCode.md b/old_docs/API_docs_v41/methods/auth_sendCode.md
index 9afebb55..4e856d6a 100644
--- a/old_docs/API_docs_v41/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v41/methods/auth_sendCode.md
@@ -7,8 +7,59 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|sms\_type|[int](../types/int.md) | You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+|lang\_code|[string](../types/string.md) | You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['phone_number' => 'string', 'sms_type' => int, 'api_id' => int, 'api_hash' => 'string', 'lang_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({phone_number='string', sms_type=int, api_id=int, api_hash='string', lang_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v41/methods/auth_sendInvites.md b/old_docs/API_docs_v41/methods/auth_sendInvites.md
index e10c1109..4c11023e 100644
--- a/old_docs/API_docs_v41/methods/auth_sendInvites.md
+++ b/old_docs/API_docs_v41/methods/auth_sendInvites.md
@@ -49,10 +49,10 @@ Bool = auth.sendInvites({phone_numbers={'string'}, message='string', })
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_EMPTY|The provided message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_EMPTY|The provided message is empty|
diff --git a/old_docs/API_docs_v41/methods/auth_signIn.md b/old_docs/API_docs_v41/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v41/methods/auth_signIn.md
+++ b/old_docs/API_docs_v41/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v41/methods/auth_signUp.md b/old_docs/API_docs_v41/methods/auth_signUp.md
index 15960145..31154486 100644
--- a/old_docs/API_docs_v41/methods/auth_signUp.md
+++ b/old_docs/API_docs_v41/methods/auth_signUp.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', phone_code='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v41/methods/channels_checkUsername.md b/old_docs/API_docs_v41/methods/channels_checkUsername.md
index 483a2f6f..52365d34 100644
--- a/old_docs/API_docs_v41/methods/channels_checkUsername.md
+++ b/old_docs/API_docs_v41/methods/channels_checkUsername.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Bool = channels.checkUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v41/methods/channels_createChannel.md b/old_docs/API_docs_v41/methods/channels_createChannel.md
index b924e6a6..ecaee0ef 100644
--- a/old_docs/API_docs_v41/methods/channels_createChannel.md
+++ b/old_docs/API_docs_v41/methods/channels_createChannel.md
@@ -45,12 +45,12 @@ Or, if you're into Lua:
Updates = channels.createChannel({broadcast=Bool, megagroup=Bool, title='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_TITLE_EMPTY|No chat title provided|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
+|406|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v41/methods/channels_deleteChannel.md b/old_docs/API_docs_v41/methods/channels_deleteChannel.md
index 53a9c23d..1b8d2d48 100644
--- a/old_docs/API_docs_v41/methods/channels_deleteChannel.md
+++ b/old_docs/API_docs_v41/methods/channels_deleteChannel.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Updates = channels.deleteChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v41/methods/channels_deleteMessages.md b/old_docs/API_docs_v41/methods/channels_deleteMessages.md
index f76a9ad1..463ebad0 100644
--- a/old_docs/API_docs_v41/methods/channels_deleteMessages.md
+++ b/old_docs/API_docs_v41/methods/channels_deleteMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_AffectedMessages = channels.deleteMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v41/methods/channels_deleteUserHistory.md b/old_docs/API_docs_v41/methods/channels_deleteUserHistory.md
index 0a4e7d82..33905a7e 100644
--- a/old_docs/API_docs_v41/methods/channels_deleteUserHistory.md
+++ b/old_docs/API_docs_v41/methods/channels_deleteUserHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedHistory = channels.deleteUserHistory({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v41/methods/channels_editAbout.md b/old_docs/API_docs_v41/methods/channels_editAbout.md
index 47111668..d5e090e0 100644
--- a/old_docs/API_docs_v41/methods/channels_editAbout.md
+++ b/old_docs/API_docs_v41/methods/channels_editAbout.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Bool = channels.editAbout({channel=InputChannel, about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
-|CHAT_ABOUT_TOO_LONG|Chat about too long|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
+|400|CHAT_ABOUT_TOO_LONG|Chat about too long|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v41/methods/channels_editAdmin.md b/old_docs/API_docs_v41/methods/channels_editAdmin.md
index aa760e29..b1c5c890 100644
--- a/old_docs/API_docs_v41/methods/channels_editAdmin.md
+++ b/old_docs/API_docs_v41/methods/channels_editAdmin.md
@@ -44,19 +44,19 @@ Or, if you're into Lua:
Bool = channels.editAdmin({channel=InputChannel, user_id=InputUser, role=ChannelParticipantRole, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ADMINS_TOO_MUCH|There are too many admins|
-|BOT_CHANNELS_NA|Bots can't edit admin privileges|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
-|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ADMINS_TOO_MUCH|There are too many admins|
+|400|BOT_CHANNELS_NA|Bots can't edit admin privileges|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
+|403|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v41/methods/channels_editPhoto.md b/old_docs/API_docs_v41/methods/channels_editPhoto.md
index bec0ba48..caef32d5 100644
--- a/old_docs/API_docs_v41/methods/channels_editPhoto.md
+++ b/old_docs/API_docs_v41/methods/channels_editPhoto.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editPhoto({channel=InputChannel, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|PHOTO_INVALID|Photo invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|PHOTO_INVALID|Photo invalid|
diff --git a/old_docs/API_docs_v41/methods/channels_editTitle.md b/old_docs/API_docs_v41/methods/channels_editTitle.md
index b5efeb39..d7cb33da 100644
--- a/old_docs/API_docs_v41/methods/channels_editTitle.md
+++ b/old_docs/API_docs_v41/methods/channels_editTitle.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editTitle({channel=InputChannel, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v41/methods/channels_exportInvite.md b/old_docs/API_docs_v41/methods/channels_exportInvite.md
index 0918b3e7..9d578deb 100644
--- a/old_docs/API_docs_v41/methods/channels_exportInvite.md
+++ b/old_docs/API_docs_v41/methods/channels_exportInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ExportedChatInvite = channels.exportInvite({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INVITE_HASH_EXPIRED|The invite link has expired|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
diff --git a/old_docs/API_docs_v41/methods/channels_getChannels.md b/old_docs/API_docs_v41/methods/channels_getChannels.md
index 78d50641..95d7a188 100644
--- a/old_docs/API_docs_v41/methods/channels_getChannels.md
+++ b/old_docs/API_docs_v41/methods/channels_getChannels.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = channels.getChannels({id={InputChannel}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v41/methods/channels_getFullChannel.md b/old_docs/API_docs_v41/methods/channels_getFullChannel.md
index 45a8ec72..ebd53de4 100644
--- a/old_docs/API_docs_v41/methods/channels_getFullChannel.md
+++ b/old_docs/API_docs_v41/methods/channels_getFullChannel.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->channels->getFullChannel(['channel' => InputChannel, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = channels.getFullChannel({channel=InputChannel, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v41/methods/channels_getMessages.md b/old_docs/API_docs_v41/methods/channels_getMessages.md
index aa85d640..57bcc60f 100644
--- a/old_docs/API_docs_v41/methods/channels_getMessages.md
+++ b/old_docs/API_docs_v41/methods/channels_getMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_Messages = channels.getMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
diff --git a/old_docs/API_docs_v41/methods/channels_getParticipant.md b/old_docs/API_docs_v41/methods/channels_getParticipant.md
index 6633114f..808156fd 100644
--- a/old_docs/API_docs_v41/methods/channels_getParticipant.md
+++ b/old_docs/API_docs_v41/methods/channels_getParticipant.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
channels_ChannelParticipant = channels.getParticipant({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v41/methods/channels_getParticipants.md b/old_docs/API_docs_v41/methods/channels_getParticipants.md
index d4bd8779..21d4a418 100644
--- a/old_docs/API_docs_v41/methods/channels_getParticipants.md
+++ b/old_docs/API_docs_v41/methods/channels_getParticipants.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, filter=ChannelParticipantsFilter, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v41/methods/channels_inviteToChannel.md b/old_docs/API_docs_v41/methods/channels_inviteToChannel.md
index f7093f13..d8c5e88a 100644
--- a/old_docs/API_docs_v41/methods/channels_inviteToChannel.md
+++ b/old_docs/API_docs_v41/methods/channels_inviteToChannel.md
@@ -43,25 +43,25 @@ Or, if you're into Lua:
Updates = channels.inviteToChannel({channel=InputChannel, users={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
-|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_BLOCKED|User blocked|
-|USER_BOT|Bots can only be admins in channels.|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_KICKED|This user was kicked from this supergroup/channel|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
+|400|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_BLOCKED|User blocked|
+|400|USER_BOT|Bots can only be admins in channels.|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_KICKED|This user was kicked from this supergroup/channel|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v41/methods/channels_joinChannel.md b/old_docs/API_docs_v41/methods/channels_joinChannel.md
index b056031a..a4a7c177 100644
--- a/old_docs/API_docs_v41/methods/channels_joinChannel.md
+++ b/old_docs/API_docs_v41/methods/channels_joinChannel.md
@@ -42,15 +42,15 @@ Or, if you're into Lua:
Updates = channels.joinChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
diff --git a/old_docs/API_docs_v41/methods/channels_leaveChannel.md b/old_docs/API_docs_v41/methods/channels_leaveChannel.md
index fdea13ba..6538d443 100644
--- a/old_docs/API_docs_v41/methods/channels_leaveChannel.md
+++ b/old_docs/API_docs_v41/methods/channels_leaveChannel.md
@@ -42,14 +42,14 @@ Or, if you're into Lua:
Updates = channels.leaveChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
-|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
diff --git a/old_docs/API_docs_v41/methods/channels_readHistory.md b/old_docs/API_docs_v41/methods/channels_readHistory.md
index 93dc075f..3532dae0 100644
--- a/old_docs/API_docs_v41/methods/channels_readHistory.md
+++ b/old_docs/API_docs_v41/methods/channels_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readHistory({channel=InputChannel, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v41/methods/channels_reportSpam.md b/old_docs/API_docs_v41/methods/channels_reportSpam.md
index db80676a..7e273cc5 100644
--- a/old_docs/API_docs_v41/methods/channels_reportSpam.md
+++ b/old_docs/API_docs_v41/methods/channels_reportSpam.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
Bool = channels.reportSpam({channel=InputChannel, user_id=InputUser, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
diff --git a/old_docs/API_docs_v41/methods/channels_updateUsername.md b/old_docs/API_docs_v41/methods/channels_updateUsername.md
index 677712f9..48d250e6 100644
--- a/old_docs/API_docs_v41/methods/channels_updateUsername.md
+++ b/old_docs/API_docs_v41/methods/channels_updateUsername.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Bool = channels.updateUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_OCCUPIED|The provided username is already occupied|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
diff --git a/old_docs/API_docs_v41/methods/contacts_block.md b/old_docs/API_docs_v41/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v41/methods/contacts_block.md
+++ b/old_docs/API_docs_v41/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v41/methods/contacts_deleteContact.md b/old_docs/API_docs_v41/methods/contacts_deleteContact.md
index ba9569e4..a9321d64 100644
--- a/old_docs/API_docs_v41/methods/contacts_deleteContact.md
+++ b/old_docs/API_docs_v41/methods/contacts_deleteContact.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
contacts_Link = contacts.deleteContact({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v41/methods/contacts_deleteContacts.md b/old_docs/API_docs_v41/methods/contacts_deleteContacts.md
index bfc91fdd..3c8e90f0 100644
--- a/old_docs/API_docs_v41/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v41/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v41/methods/contacts_getStatuses.md b/old_docs/API_docs_v41/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v41/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v41/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v41/methods/contacts_importCard.md b/old_docs/API_docs_v41/methods/contacts_importCard.md
index 15addde1..ed3d17fe 100644
--- a/old_docs/API_docs_v41/methods/contacts_importCard.md
+++ b/old_docs/API_docs_v41/methods/contacts_importCard.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
User = contacts.importCard({export_card={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|EXPORT_CARD_INVALID|Provided card is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EXPORT_CARD_INVALID|Provided card is invalid|
diff --git a/old_docs/API_docs_v41/methods/contacts_resolveUsername.md b/old_docs/API_docs_v41/methods/contacts_resolveUsername.md
index fab56bb1..68f709db 100644
--- a/old_docs/API_docs_v41/methods/contacts_resolveUsername.md
+++ b/old_docs/API_docs_v41/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [contacts\_ResolvedPeer](../types/contacts_ResolvedPeer.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$contacts_ResolvedPeer = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+contacts_ResolvedPeer = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v41/methods/contacts_search.md b/old_docs/API_docs_v41/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v41/methods/contacts_search.md
+++ b/old_docs/API_docs_v41/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v41/methods/contacts_unblock.md b/old_docs/API_docs_v41/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v41/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v41/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v41/methods/help_getConfig.md b/old_docs/API_docs_v41/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v41/methods/help_getConfig.md
+++ b/old_docs/API_docs_v41/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v41/methods/initConnection.md b/old_docs/API_docs_v41/methods/initConnection.md
index 659f4e6b..a41f0c4d 100644
--- a/old_docs/API_docs_v41/methods/initConnection.md
+++ b/old_docs/API_docs_v41/methods/initConnection.md
@@ -47,11 +47,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', lang_code='string', query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v41/methods/invokeWithLayer.md b/old_docs/API_docs_v41/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/old_docs/API_docs_v41/methods/invokeWithLayer.md
+++ b/old_docs/API_docs_v41/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v41/methods/messages_acceptEncryption.md b/old_docs/API_docs_v41/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v41/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v41/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v41/methods/messages_addChatUser.md b/old_docs/API_docs_v41/methods/messages_addChatUser.md
index bc0d6253..b5e164b2 100644
--- a/old_docs/API_docs_v41/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v41/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
Updates = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v41/methods/messages_checkChatInvite.md b/old_docs/API_docs_v41/methods/messages_checkChatInvite.md
index de28b09b..0d13d55e 100644
--- a/old_docs/API_docs_v41/methods/messages_checkChatInvite.md
+++ b/old_docs/API_docs_v41/methods/messages_checkChatInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ChatInvite = messages.checkChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
diff --git a/old_docs/API_docs_v41/methods/messages_createChat.md b/old_docs/API_docs_v41/methods/messages_createChat.md
index 8f6e9672..b2623f1d 100644
--- a/old_docs/API_docs_v41/methods/messages_createChat.md
+++ b/old_docs/API_docs_v41/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v41/methods/messages_deleteChatUser.md b/old_docs/API_docs_v41/methods/messages_deleteChatUser.md
index 63529571..11b9b220 100644
--- a/old_docs/API_docs_v41/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v41/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v41/methods/messages_deleteHistory.md b/old_docs/API_docs_v41/methods/messages_deleteHistory.md
index a906587c..be19b57b 100644
--- a/old_docs/API_docs_v41/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v41/methods/messages_deleteHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v41/methods/messages_deleteMessages.md b/old_docs/API_docs_v41/methods/messages_deleteMessages.md
index 6df3ffec..a0d79592 100644
--- a/old_docs/API_docs_v41/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v41/methods/messages_deleteMessages.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.deleteMessages({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v41/methods/messages_discardEncryption.md b/old_docs/API_docs_v41/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v41/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v41/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v41/methods/messages_editChatAdmin.md b/old_docs/API_docs_v41/methods/messages_editChatAdmin.md
index 2b4dc94c..6f6c1376 100644
--- a/old_docs/API_docs_v41/methods/messages_editChatAdmin.md
+++ b/old_docs/API_docs_v41/methods/messages_editChatAdmin.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.editChatAdmin({chat_id=InputPeer, user_id=InputUser, is_admin=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v41/methods/messages_editChatPhoto.md b/old_docs/API_docs_v41/methods/messages_editChatPhoto.md
index 2a82c232..a21a03b9 100644
--- a/old_docs/API_docs_v41/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v41/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Updates = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v41/methods/messages_editChatTitle.md b/old_docs/API_docs_v41/methods/messages_editChatTitle.md
index 2c338ad6..72f78741 100644
--- a/old_docs/API_docs_v41/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v41/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v41/methods/messages_exportChatInvite.md b/old_docs/API_docs_v41/methods/messages_exportChatInvite.md
index f3449e79..bc6272e4 100644
--- a/old_docs/API_docs_v41/methods/messages_exportChatInvite.md
+++ b/old_docs/API_docs_v41/methods/messages_exportChatInvite.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
ExportedChatInvite = messages.exportChatInvite({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v41/methods/messages_forwardMessage.md b/old_docs/API_docs_v41/methods/messages_forwardMessage.md
index c8e0b18d..95f6d2f3 100644
--- a/old_docs/API_docs_v41/methods/messages_forwardMessage.md
+++ b/old_docs/API_docs_v41/methods/messages_forwardMessage.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Updates = messages.forwardMessage({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|YOU_BLOCKED_USER|You blocked this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|YOU_BLOCKED_USER|You blocked this user|
diff --git a/old_docs/API_docs_v41/methods/messages_forwardMessages.md b/old_docs/API_docs_v41/methods/messages_forwardMessages.md
index baa3d481..ce66ff7b 100644
--- a/old_docs/API_docs_v41/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v41/methods/messages_forwardMessages.md
@@ -45,29 +45,29 @@ Or, if you're into Lua:
Updates = messages.forwardMessages({broadcast=Bool, from_peer=InputPeer, id={int}, to_peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v41/methods/messages_getChats.md b/old_docs/API_docs_v41/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/old_docs/API_docs_v41/methods/messages_getChats.md
+++ b/old_docs/API_docs_v41/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v41/methods/messages_getDhConfig.md b/old_docs/API_docs_v41/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v41/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v41/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v41/methods/messages_getDialogs.md b/old_docs/API_docs_v41/methods/messages_getDialogs.md
index 967e42ce..05dddf22 100644
--- a/old_docs/API_docs_v41/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v41/methods/messages_getDialogs.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v41/methods/messages_getFullChat.md b/old_docs/API_docs_v41/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v41/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v41/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v41/methods/messages_getHistory.md b/old_docs/API_docs_v41/methods/messages_getHistory.md
index 2fc5d597..d23331cc 100644
--- a/old_docs/API_docs_v41/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v41/methods/messages_getHistory.md
@@ -47,16 +47,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v41/methods/messages_getMessagesViews.md b/old_docs/API_docs_v41/methods/messages_getMessagesViews.md
index 3d490315..143e568c 100644
--- a/old_docs/API_docs_v41/methods/messages_getMessagesViews.md
+++ b/old_docs/API_docs_v41/methods/messages_getMessagesViews.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
Vector_of_int = messages.getMessagesViews({peer=InputPeer, id={int}, increment=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v41/methods/messages_getStickerSet.md b/old_docs/API_docs_v41/methods/messages_getStickerSet.md
index 57bce84d..487316cc 100644
--- a/old_docs/API_docs_v41/methods/messages_getStickerSet.md
+++ b/old_docs/API_docs_v41/methods/messages_getStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_StickerSet = messages.getStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v41/methods/messages_importChatInvite.md b/old_docs/API_docs_v41/methods/messages_importChatInvite.md
index 12120867..101b4b19 100644
--- a/old_docs/API_docs_v41/methods/messages_importChatInvite.md
+++ b/old_docs/API_docs_v41/methods/messages_importChatInvite.md
@@ -42,16 +42,16 @@ Or, if you're into Lua:
Updates = messages.importChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v41/methods/messages_installStickerSet.md b/old_docs/API_docs_v41/methods/messages_installStickerSet.md
index e1f691f2..3803f946 100644
--- a/old_docs/API_docs_v41/methods/messages_installStickerSet.md
+++ b/old_docs/API_docs_v41/methods/messages_installStickerSet.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.installStickerSet({stickerset=InputStickerSet, disabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v41/methods/messages_migrateChat.md b/old_docs/API_docs_v41/methods/messages_migrateChat.md
index a72f4c11..ee4010eb 100644
--- a/old_docs/API_docs_v41/methods/messages_migrateChat.md
+++ b/old_docs/API_docs_v41/methods/messages_migrateChat.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
Updates = messages.migrateChat({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v41/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v41/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v41/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v41/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v41/methods/messages_readHistory.md b/old_docs/API_docs_v41/methods/messages_readHistory.md
index 2ad5cd09..a7f0eca7 100644
--- a/old_docs/API_docs_v41/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v41/methods/messages_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.readHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v41/methods/messages_receivedQueue.md b/old_docs/API_docs_v41/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v41/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v41/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v41/methods/messages_reportSpam.md b/old_docs/API_docs_v41/methods/messages_reportSpam.md
index e92fba13..dc256e55 100644
--- a/old_docs/API_docs_v41/methods/messages_reportSpam.md
+++ b/old_docs/API_docs_v41/methods/messages_reportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v41/methods/messages_requestEncryption.md b/old_docs/API_docs_v41/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v41/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v41/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v41/methods/messages_search.md b/old_docs/API_docs_v41/methods/messages_search.md
index 32efc390..f8941cac 100644
--- a/old_docs/API_docs_v41/methods/messages_search.md
+++ b/old_docs/API_docs_v41/methods/messages_search.md
@@ -50,16 +50,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({important_only=Bool, peer=InputPeer, q='string', filter=MessagesFilter, min_date=int, max_date=int, offset=int, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v41/methods/messages_searchGlobal.md b/old_docs/API_docs_v41/methods/messages_searchGlobal.md
index fb38398b..c8da163c 100644
--- a/old_docs/API_docs_v41/methods/messages_searchGlobal.md
+++ b/old_docs/API_docs_v41/methods/messages_searchGlobal.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
messages_Messages = messages.searchGlobal({q='string', offset_date=int, offset_peer=InputPeer, offset_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v41/methods/messages_sendEncrypted.md b/old_docs/API_docs_v41/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v41/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v41/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v41/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v41/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v41/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v41/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v41/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v41/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v41/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v41/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v41/methods/messages_sendMedia.md b/old_docs/API_docs_v41/methods/messages_sendMedia.md
index 8413e296..1770c3ea 100644
--- a/old_docs/API_docs_v41/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v41/methods/messages_sendMedia.md
@@ -52,31 +52,31 @@ Updates = messages.sendMedia({broadcast=Bool, peer=InputPeer, reply_to_msg_id=in
You can provide bot API reply_markup objects here.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v41/methods/messages_sendMessage.md b/old_docs/API_docs_v41/methods/messages_sendMessage.md
index 4a990893..39f9df64 100644
--- a/old_docs/API_docs_v41/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v41/methods/messages_sendMessage.md
@@ -97,31 +97,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v41/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v41/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v41/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v41/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v41/methods/messages_setTyping.md b/old_docs/API_docs_v41/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v41/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v41/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v41/methods/messages_startBot.md b/old_docs/API_docs_v41/methods/messages_startBot.md
index aa2b2d00..4bf12aa6 100644
--- a/old_docs/API_docs_v41/methods/messages_startBot.md
+++ b/old_docs/API_docs_v41/methods/messages_startBot.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = messages.startBot({bot=InputUser, peer=InputPeer, start_param='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INVALID|This is not a valid bot|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|START_PARAM_EMPTY|The start parameter is empty|
-|START_PARAM_INVALID|Start parameter invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INVALID|This is not a valid bot|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|START_PARAM_EMPTY|The start parameter is empty|
+|400|START_PARAM_INVALID|Start parameter invalid|
diff --git a/old_docs/API_docs_v41/methods/messages_toggleChatAdmins.md b/old_docs/API_docs_v41/methods/messages_toggleChatAdmins.md
index 7851806d..8ea6e65e 100644
--- a/old_docs/API_docs_v41/methods/messages_toggleChatAdmins.md
+++ b/old_docs/API_docs_v41/methods/messages_toggleChatAdmins.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.toggleChatAdmins({chat_id=InputPeer, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v41/methods/messages_uninstallStickerSet.md b/old_docs/API_docs_v41/methods/messages_uninstallStickerSet.md
index 59abc510..6b7a2006 100644
--- a/old_docs/API_docs_v41/methods/messages_uninstallStickerSet.md
+++ b/old_docs/API_docs_v41/methods/messages_uninstallStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.uninstallStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v41/methods/photos_getUserPhotos.md b/old_docs/API_docs_v41/methods/photos_getUserPhotos.md
index 57f5772b..a01f3180 100644
--- a/old_docs/API_docs_v41/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v41/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v41/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v41/methods/photos_updateProfilePhoto.md
index 53d0b12f..db7fe164 100644
--- a/old_docs/API_docs_v41/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v41/methods/photos_updateProfilePhoto.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, crop=InputPhotoCrop, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v41/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v41/methods/photos_uploadProfilePhoto.md
index f140329e..10653c42 100644
--- a/old_docs/API_docs_v41/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v41/methods/photos_uploadProfilePhoto.md
@@ -45,13 +45,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, caption='string', geo_point=InputGeoPoint, crop=InputPhotoCrop, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v41/methods/updates_getChannelDifference.md b/old_docs/API_docs_v41/methods/updates_getChannelDifference.md
index 6fa79529..08d497ed 100644
--- a/old_docs/API_docs_v41/methods/updates_getChannelDifference.md
+++ b/old_docs/API_docs_v41/methods/updates_getChannelDifference.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|filter|[ChannelMessagesFilter](../types/ChannelMessagesFilter.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_ChannelDifference](../types/updates_ChannelDifference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_ChannelDifference = $MadelineProto->updates->getChannelDifference(['channel' => InputChannel, 'filter' => ChannelMessagesFilter, 'pts' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_ChannelDifference = updates.getChannelDifference({channel=InputChannel, filter=ChannelMessagesFilter, pts=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|400|RANGES_INVALID|Invalid range provided|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v41/methods/updates_getDifference.md b/old_docs/API_docs_v41/methods/updates_getDifference.md
index 33e7d7f2..57ea6d99 100644
--- a/old_docs/API_docs_v41/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v41/methods/updates_getDifference.md
@@ -7,8 +7,54 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v41/methods/updates_getState.md b/old_docs/API_docs_v41/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v41/methods/updates_getState.md
+++ b/old_docs/API_docs_v41/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v41/methods/upload_getFile.md b/old_docs/API_docs_v41/methods/upload_getFile.md
index c72e6090..d8b433d6 100644
--- a/old_docs/API_docs_v41/methods/upload_getFile.md
+++ b/old_docs/API_docs_v41/methods/upload_getFile.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v41/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v41/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v41/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v41/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v41/methods/upload_saveFilePart.md b/old_docs/API_docs_v41/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v41/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v41/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v41/methods/users_getFullUser.md b/old_docs/API_docs_v41/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v41/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v41/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v41/methods/users_getUsers.md b/old_docs/API_docs_v41/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v41/methods/users_getUsers.md
+++ b/old_docs/API_docs_v41/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v42/methods/README.md b/old_docs/API_docs_v42/methods/README.md
index 4ece0fc7..a161eab6 100644
--- a/old_docs/API_docs_v42/methods/README.md
+++ b/old_docs/API_docs_v42/methods/README.md
@@ -30,249 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Add a sticker set: messages.installStickerSet
-
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add phone number as contact: contacts.importContacts
-
-* Add users to channel/supergroup: channels.inviteToChannel
-
-* Block a user: contacts.block
-
-* Change notification settings: account.updateNotifySettings
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if an invitation link is valid: messages.checkChatInvite
-
-* Check if this phone number is registered on telegram: auth.checkPhone
-
-* Check if this username is available: account.checkUsername
-
-* Check if this username is free and can be assigned to a channel/supergroup: channels.checkUsername
-
-* Convert chat to supergroup: messages.migrateChat
-
-* Create a chat (not supergroup): messages.createChat
-
-* Create channel/supergroup: channels.createChannel
-
-* Delete a certain session: account.resetAuthorization
-
-* Delete a channel/supergroup: channels.deleteChannel
-
-* Delete a contact: contacts.deleteContact
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete all messages of a user in a channel/supergroup: channels.deleteUserHistory
-
-* Delete channel/supergroup messages: channels.deleteMessages
-
-* Delete chat history: messages.deleteHistory
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete this account: account.deleteAccount
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Edit admin permissions of a user in a channel/supergroup: channels.editAdmin
-
-* Edit admin permissions: messages.editChatAdmin
-
-* Edit the about text of a channel/supergroup: channels.editAbout
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the photo of a supergroup/channel: channels.editPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Edit the title of a supergroup/channel: channels.editTitle
-
-* Enable all users are admins in normal groups (not supergroups): messages.toggleChatAdmins
-
-* Enable channel comments: channels.toggleComments
-
-* Export chat invite : messages.exportChatInvite
-
-* Export contact as card: contacts.exportCard
-
-* Export the invite link of a channel: channels.exportInvite
-
-* Forward message: messages.forwardMessage
-
-* Forward messages: messages.forwardMessages
-
-* Get a stickerset: messages.getStickerSet
-
-* Get account TTL: account.getAccountTTL
-
-* Get all contacts: contacts.getContacts
-
-* Get all logged-in authorizations: account.getAuthorizations
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get and increase message views: messages.getMessagesViews
-
-* Get blocked users: contacts.getBlocked
-
-* Get channel dialogs: channels.getDialogs
-
-* Get channel/supergroup messages: channels.getMessages
-
-* Get channel/supergroup participants (you should use `$MadelineProto->get_pwr_chat($id)` instead): channels.getParticipants
-
-* Get important channel/supergroup history: channels.getImportantHistory
-
-* Get info about a certain channel/supergroup participant: channels.getParticipant
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about multiple channels/supergroups: channels.getChannels
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get invitation text: help.getInviteText
-
-* Get messages: messages.getMessages
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get server configuration: help.getConfig
-
-* Get stickers: messages.getStickers
-
-* Get suggested contacts: contacts.getSuggested
-
-* Get the changelog of this app: help.getAppChangelog
-
-* Get the current password: account.getPassword
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Get webpage preview: messages.getWebPagePreview
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Global message search: messages.searchGlobal
-
-* Import card as contact: contacts.importCard
-
-* Import chat invite: messages.importChatInvite
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Invite friends to telegram!: auth.sendInvites
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invoke with method without returning updates in the socket: invokeWithoutUpdates
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Join a channel/supergroup: channels.joinChannel
-
-* Kick user from channel: channels.kickFromChannel
-
-* Leave a channel/supergroup: channels.leaveChannel
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark channel/supergroup history as read: channels.readHistory
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Register device for push notifications: account.registerDevice
-
-* Remove a sticker set: messages.uninstallStickerSet
-
-* Report a message in a supergroup/channel for spam: channels.reportSpam
-
-* Report a peer for spam: messages.reportSpam
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Search contacts: contacts.search
-
-* Search peers or messages: messages.search
-
-* Send SMS verification code: auth.sendSms
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message to all users in the chat list: messages.sendBroadcast
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send an email to recover the 2FA password: auth.requestPasswordRecovery
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Send verification phone call: auth.sendCall
-
-* Set account TTL: account.setAccountTTL
-
-* Set privacy settings: account.setPrivacy
-
-* Start a bot: messages.startBot
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update profile info: account.updateProfile
-
-* Update the username of a supergroup/channel: channels.updateUsername
-
-* Update this user's username: account.updateUsername
-
-* Upload profile photo: photos.uploadProfilePhoto
-
-* Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
-
diff --git a/old_docs/API_docs_v42/methods/account_changePhone.md b/old_docs/API_docs_v42/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/old_docs/API_docs_v42/methods/account_changePhone.md
+++ b/old_docs/API_docs_v42/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v42/methods/account_checkUsername.md b/old_docs/API_docs_v42/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v42/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v42/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v42/methods/account_getNotifySettings.md b/old_docs/API_docs_v42/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v42/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v42/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v42/methods/account_getPasswordSettings.md b/old_docs/API_docs_v42/methods/account_getPasswordSettings.md
index 8ebb78ee..8f878365 100644
--- a/old_docs/API_docs_v42/methods/account_getPasswordSettings.md
+++ b/old_docs/API_docs_v42/methods/account_getPasswordSettings.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+Get the current 2FA settings
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+### Return type: [account\_PasswordSettings](../types/account_PasswordSettings.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$account_PasswordSettings = $MadelineProto->account->getPasswordSettings(['current_password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+account_PasswordSettings = account.getPasswordSettings({current_password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v42/methods/account_getPrivacy.md b/old_docs/API_docs_v42/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/old_docs/API_docs_v42/methods/account_getPrivacy.md
+++ b/old_docs/API_docs_v42/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v42/methods/account_registerDevice.md b/old_docs/API_docs_v42/methods/account_registerDevice.md
index ab5a56a6..908977a3 100644
--- a/old_docs/API_docs_v42/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v42/methods/account_registerDevice.md
@@ -48,10 +48,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({token_type=int, token='string', device_model='string', system_version='string', app_version='string', app_sandbox=Bool, lang_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v42/methods/account_resetAuthorization.md b/old_docs/API_docs_v42/methods/account_resetAuthorization.md
index c950992c..e8e8ecc4 100644
--- a/old_docs/API_docs_v42/methods/account_resetAuthorization.md
+++ b/old_docs/API_docs_v42/methods/account_resetAuthorization.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.resetAuthorization({hash=long, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v42/methods/account_sendChangePhoneCode.md b/old_docs/API_docs_v42/methods/account_sendChangePhoneCode.md
index c4bc0675..8537d9d9 100644
--- a/old_docs/API_docs_v42/methods/account_sendChangePhoneCode.md
+++ b/old_docs/API_docs_v42/methods/account_sendChangePhoneCode.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_SentChangePhoneCode = account.sendChangePhoneCode({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v42/methods/account_setAccountTTL.md b/old_docs/API_docs_v42/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/old_docs/API_docs_v42/methods/account_setAccountTTL.md
+++ b/old_docs/API_docs_v42/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/old_docs/API_docs_v42/methods/account_setPrivacy.md b/old_docs/API_docs_v42/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/old_docs/API_docs_v42/methods/account_setPrivacy.md
+++ b/old_docs/API_docs_v42/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v42/methods/account_unregisterDevice.md b/old_docs/API_docs_v42/methods/account_unregisterDevice.md
index 589f48b0..a184da43 100644
--- a/old_docs/API_docs_v42/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v42/methods/account_unregisterDevice.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v42/methods/account_updateNotifySettings.md b/old_docs/API_docs_v42/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v42/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v42/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v42/methods/account_updatePasswordSettings.md b/old_docs/API_docs_v42/methods/account_updatePasswordSettings.md
index 80f27228..68e5da6d 100644
--- a/old_docs/API_docs_v42/methods/account_updatePasswordSettings.md
+++ b/old_docs/API_docs_v42/methods/account_updatePasswordSettings.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+|new\_settings|[account\_PasswordInputSettings](../types/account_PasswordInputSettings.md) | New 2FA settings | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->account->updatePasswordSettings(['current_password_hash' => 'bytes', 'new_settings' => account_PasswordInputSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = account.updatePasswordSettings({current_password_hash='bytes', new_settings=account_PasswordInputSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EMAIL_UNCONFIRMED|Email unconfirmed|
+|400|EMAIL_UNCONFIRMED_X|The provided email isn't confirmed, X is the length of the verification code that was just sent to the email.|
+|400|NEW_SALT_INVALID|The new salt is invalid|
+|400|NEW_SETTINGS_INVALID|The new settings are invalid|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v42/methods/account_updateProfile.md b/old_docs/API_docs_v42/methods/account_updateProfile.md
index 486f63bc..33423686 100644
--- a/old_docs/API_docs_v42/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v42/methods/account_updateProfile.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v42/methods/account_updateStatus.md b/old_docs/API_docs_v42/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v42/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v42/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v42/methods/account_updateUsername.md b/old_docs/API_docs_v42/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v42/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v42/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v42/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v42/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v42/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v42/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v42/methods/auth_checkPassword.md b/old_docs/API_docs_v42/methods/auth_checkPassword.md
index 8d76c483..db65cb56 100644
--- a/old_docs/API_docs_v42/methods/auth_checkPassword.md
+++ b/old_docs/API_docs_v42/methods/auth_checkPassword.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->checkPassword(['password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.checkPassword({password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v42/methods/auth_checkPhone.md b/old_docs/API_docs_v42/methods/auth_checkPhone.md
index f3e32365..e974ce7f 100644
--- a/old_docs/API_docs_v42/methods/auth_checkPhone.md
+++ b/old_docs/API_docs_v42/methods/auth_checkPhone.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
auth_CheckedPhone = auth.checkPhone({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v42/methods/auth_exportAuthorization.md b/old_docs/API_docs_v42/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v42/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v42/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v42/methods/auth_importAuthorization.md b/old_docs/API_docs_v42/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v42/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v42/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v42/methods/auth_importBotAuthorization.md b/old_docs/API_docs_v42/methods/auth_importBotAuthorization.md
index 1a98c1b9..98a2f8ca 100644
--- a/old_docs/API_docs_v42/methods/auth_importBotAuthorization.md
+++ b/old_docs/API_docs_v42/methods/auth_importBotAuthorization.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|api\_id|[int](../types/int.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_hash|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|bot\_auth\_token|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importBotAuthorization(['api_id' => int, 'api_hash' => 'string', 'bot_auth_token' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importBotAuthorization({api_id=int, api_hash='string', bot_auth_token='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ACCESS_TOKEN_EXPIRED|Access token expired|
+|400|ACCESS_TOKEN_INVALID|Access token invalid|
+|400|API_ID_INVALID|API ID invalid|
diff --git a/old_docs/API_docs_v42/methods/auth_logOut.md b/old_docs/API_docs_v42/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v42/methods/auth_logOut.md
+++ b/old_docs/API_docs_v42/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v42/methods/auth_recoverPassword.md b/old_docs/API_docs_v42/methods/auth_recoverPassword.md
index 83ff5aed..d4bad9c5 100644
--- a/old_docs/API_docs_v42/methods/auth_recoverPassword.md
+++ b/old_docs/API_docs_v42/methods/auth_recoverPassword.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
auth_Authorization = auth.recoverPassword({code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_EMPTY|The provided code is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_EMPTY|The provided code is empty|
diff --git a/old_docs/API_docs_v42/methods/auth_requestPasswordRecovery.md b/old_docs/API_docs_v42/methods/auth_requestPasswordRecovery.md
index 1864bbb0..b6ad57ba 100644
--- a/old_docs/API_docs_v42/methods/auth_requestPasswordRecovery.md
+++ b/old_docs/API_docs_v42/methods/auth_requestPasswordRecovery.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
auth_PasswordRecovery = auth.requestPasswordRecovery({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_EMPTY|The provided password is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_EMPTY|The provided password is empty|
diff --git a/old_docs/API_docs_v42/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v42/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v42/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v42/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v42/methods/auth_sendCode.md b/old_docs/API_docs_v42/methods/auth_sendCode.md
index 9afebb55..4e856d6a 100644
--- a/old_docs/API_docs_v42/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v42/methods/auth_sendCode.md
@@ -7,8 +7,59 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|sms\_type|[int](../types/int.md) | You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+|lang\_code|[string](../types/string.md) | You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['phone_number' => 'string', 'sms_type' => int, 'api_id' => int, 'api_hash' => 'string', 'lang_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({phone_number='string', sms_type=int, api_id=int, api_hash='string', lang_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v42/methods/auth_sendInvites.md b/old_docs/API_docs_v42/methods/auth_sendInvites.md
index e10c1109..4c11023e 100644
--- a/old_docs/API_docs_v42/methods/auth_sendInvites.md
+++ b/old_docs/API_docs_v42/methods/auth_sendInvites.md
@@ -49,10 +49,10 @@ Bool = auth.sendInvites({phone_numbers={'string'}, message='string', })
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_EMPTY|The provided message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_EMPTY|The provided message is empty|
diff --git a/old_docs/API_docs_v42/methods/auth_signIn.md b/old_docs/API_docs_v42/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v42/methods/auth_signIn.md
+++ b/old_docs/API_docs_v42/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v42/methods/auth_signUp.md b/old_docs/API_docs_v42/methods/auth_signUp.md
index 15960145..31154486 100644
--- a/old_docs/API_docs_v42/methods/auth_signUp.md
+++ b/old_docs/API_docs_v42/methods/auth_signUp.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', phone_code='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v42/methods/channels_checkUsername.md b/old_docs/API_docs_v42/methods/channels_checkUsername.md
index 483a2f6f..52365d34 100644
--- a/old_docs/API_docs_v42/methods/channels_checkUsername.md
+++ b/old_docs/API_docs_v42/methods/channels_checkUsername.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Bool = channels.checkUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v42/methods/channels_createChannel.md b/old_docs/API_docs_v42/methods/channels_createChannel.md
index b924e6a6..ecaee0ef 100644
--- a/old_docs/API_docs_v42/methods/channels_createChannel.md
+++ b/old_docs/API_docs_v42/methods/channels_createChannel.md
@@ -45,12 +45,12 @@ Or, if you're into Lua:
Updates = channels.createChannel({broadcast=Bool, megagroup=Bool, title='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_TITLE_EMPTY|No chat title provided|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
+|406|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v42/methods/channels_deleteChannel.md b/old_docs/API_docs_v42/methods/channels_deleteChannel.md
index 53a9c23d..1b8d2d48 100644
--- a/old_docs/API_docs_v42/methods/channels_deleteChannel.md
+++ b/old_docs/API_docs_v42/methods/channels_deleteChannel.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Updates = channels.deleteChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v42/methods/channels_deleteMessages.md b/old_docs/API_docs_v42/methods/channels_deleteMessages.md
index f76a9ad1..463ebad0 100644
--- a/old_docs/API_docs_v42/methods/channels_deleteMessages.md
+++ b/old_docs/API_docs_v42/methods/channels_deleteMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_AffectedMessages = channels.deleteMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v42/methods/channels_deleteUserHistory.md b/old_docs/API_docs_v42/methods/channels_deleteUserHistory.md
index 0a4e7d82..33905a7e 100644
--- a/old_docs/API_docs_v42/methods/channels_deleteUserHistory.md
+++ b/old_docs/API_docs_v42/methods/channels_deleteUserHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedHistory = channels.deleteUserHistory({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v42/methods/channels_editAbout.md b/old_docs/API_docs_v42/methods/channels_editAbout.md
index 47111668..d5e090e0 100644
--- a/old_docs/API_docs_v42/methods/channels_editAbout.md
+++ b/old_docs/API_docs_v42/methods/channels_editAbout.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Bool = channels.editAbout({channel=InputChannel, about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
-|CHAT_ABOUT_TOO_LONG|Chat about too long|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
+|400|CHAT_ABOUT_TOO_LONG|Chat about too long|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v42/methods/channels_editAdmin.md b/old_docs/API_docs_v42/methods/channels_editAdmin.md
index 3fbaf64d..229318fb 100644
--- a/old_docs/API_docs_v42/methods/channels_editAdmin.md
+++ b/old_docs/API_docs_v42/methods/channels_editAdmin.md
@@ -44,19 +44,19 @@ Or, if you're into Lua:
Updates = channels.editAdmin({channel=InputChannel, user_id=InputUser, role=ChannelParticipantRole, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ADMINS_TOO_MUCH|There are too many admins|
-|BOT_CHANNELS_NA|Bots can't edit admin privileges|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
-|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ADMINS_TOO_MUCH|There are too many admins|
+|400|BOT_CHANNELS_NA|Bots can't edit admin privileges|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
+|403|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v42/methods/channels_editPhoto.md b/old_docs/API_docs_v42/methods/channels_editPhoto.md
index bec0ba48..caef32d5 100644
--- a/old_docs/API_docs_v42/methods/channels_editPhoto.md
+++ b/old_docs/API_docs_v42/methods/channels_editPhoto.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editPhoto({channel=InputChannel, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|PHOTO_INVALID|Photo invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|PHOTO_INVALID|Photo invalid|
diff --git a/old_docs/API_docs_v42/methods/channels_editTitle.md b/old_docs/API_docs_v42/methods/channels_editTitle.md
index b5efeb39..d7cb33da 100644
--- a/old_docs/API_docs_v42/methods/channels_editTitle.md
+++ b/old_docs/API_docs_v42/methods/channels_editTitle.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editTitle({channel=InputChannel, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v42/methods/channels_exportInvite.md b/old_docs/API_docs_v42/methods/channels_exportInvite.md
index 0918b3e7..9d578deb 100644
--- a/old_docs/API_docs_v42/methods/channels_exportInvite.md
+++ b/old_docs/API_docs_v42/methods/channels_exportInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ExportedChatInvite = channels.exportInvite({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INVITE_HASH_EXPIRED|The invite link has expired|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
diff --git a/old_docs/API_docs_v42/methods/channels_getChannels.md b/old_docs/API_docs_v42/methods/channels_getChannels.md
index 78d50641..95d7a188 100644
--- a/old_docs/API_docs_v42/methods/channels_getChannels.md
+++ b/old_docs/API_docs_v42/methods/channels_getChannels.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = channels.getChannels({id={InputChannel}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v42/methods/channels_getFullChannel.md b/old_docs/API_docs_v42/methods/channels_getFullChannel.md
index 45a8ec72..ebd53de4 100644
--- a/old_docs/API_docs_v42/methods/channels_getFullChannel.md
+++ b/old_docs/API_docs_v42/methods/channels_getFullChannel.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->channels->getFullChannel(['channel' => InputChannel, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = channels.getFullChannel({channel=InputChannel, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v42/methods/channels_getMessages.md b/old_docs/API_docs_v42/methods/channels_getMessages.md
index aa85d640..57bcc60f 100644
--- a/old_docs/API_docs_v42/methods/channels_getMessages.md
+++ b/old_docs/API_docs_v42/methods/channels_getMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_Messages = channels.getMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
diff --git a/old_docs/API_docs_v42/methods/channels_getParticipant.md b/old_docs/API_docs_v42/methods/channels_getParticipant.md
index 6633114f..808156fd 100644
--- a/old_docs/API_docs_v42/methods/channels_getParticipant.md
+++ b/old_docs/API_docs_v42/methods/channels_getParticipant.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
channels_ChannelParticipant = channels.getParticipant({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v42/methods/channels_getParticipants.md b/old_docs/API_docs_v42/methods/channels_getParticipants.md
index d4bd8779..21d4a418 100644
--- a/old_docs/API_docs_v42/methods/channels_getParticipants.md
+++ b/old_docs/API_docs_v42/methods/channels_getParticipants.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, filter=ChannelParticipantsFilter, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v42/methods/channels_inviteToChannel.md b/old_docs/API_docs_v42/methods/channels_inviteToChannel.md
index f7093f13..d8c5e88a 100644
--- a/old_docs/API_docs_v42/methods/channels_inviteToChannel.md
+++ b/old_docs/API_docs_v42/methods/channels_inviteToChannel.md
@@ -43,25 +43,25 @@ Or, if you're into Lua:
Updates = channels.inviteToChannel({channel=InputChannel, users={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
-|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_BLOCKED|User blocked|
-|USER_BOT|Bots can only be admins in channels.|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_KICKED|This user was kicked from this supergroup/channel|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
+|400|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_BLOCKED|User blocked|
+|400|USER_BOT|Bots can only be admins in channels.|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_KICKED|This user was kicked from this supergroup/channel|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v42/methods/channels_joinChannel.md b/old_docs/API_docs_v42/methods/channels_joinChannel.md
index b056031a..a4a7c177 100644
--- a/old_docs/API_docs_v42/methods/channels_joinChannel.md
+++ b/old_docs/API_docs_v42/methods/channels_joinChannel.md
@@ -42,15 +42,15 @@ Or, if you're into Lua:
Updates = channels.joinChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
diff --git a/old_docs/API_docs_v42/methods/channels_leaveChannel.md b/old_docs/API_docs_v42/methods/channels_leaveChannel.md
index fdea13ba..6538d443 100644
--- a/old_docs/API_docs_v42/methods/channels_leaveChannel.md
+++ b/old_docs/API_docs_v42/methods/channels_leaveChannel.md
@@ -42,14 +42,14 @@ Or, if you're into Lua:
Updates = channels.leaveChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
-|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
diff --git a/old_docs/API_docs_v42/methods/channels_readHistory.md b/old_docs/API_docs_v42/methods/channels_readHistory.md
index 93dc075f..3532dae0 100644
--- a/old_docs/API_docs_v42/methods/channels_readHistory.md
+++ b/old_docs/API_docs_v42/methods/channels_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readHistory({channel=InputChannel, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v42/methods/channels_reportSpam.md b/old_docs/API_docs_v42/methods/channels_reportSpam.md
index db80676a..7e273cc5 100644
--- a/old_docs/API_docs_v42/methods/channels_reportSpam.md
+++ b/old_docs/API_docs_v42/methods/channels_reportSpam.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
Bool = channels.reportSpam({channel=InputChannel, user_id=InputUser, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
diff --git a/old_docs/API_docs_v42/methods/channels_updateUsername.md b/old_docs/API_docs_v42/methods/channels_updateUsername.md
index 677712f9..48d250e6 100644
--- a/old_docs/API_docs_v42/methods/channels_updateUsername.md
+++ b/old_docs/API_docs_v42/methods/channels_updateUsername.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Bool = channels.updateUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_OCCUPIED|The provided username is already occupied|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
diff --git a/old_docs/API_docs_v42/methods/contacts_block.md b/old_docs/API_docs_v42/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v42/methods/contacts_block.md
+++ b/old_docs/API_docs_v42/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v42/methods/contacts_deleteContact.md b/old_docs/API_docs_v42/methods/contacts_deleteContact.md
index ba9569e4..a9321d64 100644
--- a/old_docs/API_docs_v42/methods/contacts_deleteContact.md
+++ b/old_docs/API_docs_v42/methods/contacts_deleteContact.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
contacts_Link = contacts.deleteContact({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v42/methods/contacts_deleteContacts.md b/old_docs/API_docs_v42/methods/contacts_deleteContacts.md
index bfc91fdd..3c8e90f0 100644
--- a/old_docs/API_docs_v42/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v42/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v42/methods/contacts_getStatuses.md b/old_docs/API_docs_v42/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v42/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v42/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v42/methods/contacts_importCard.md b/old_docs/API_docs_v42/methods/contacts_importCard.md
index 15addde1..ed3d17fe 100644
--- a/old_docs/API_docs_v42/methods/contacts_importCard.md
+++ b/old_docs/API_docs_v42/methods/contacts_importCard.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
User = contacts.importCard({export_card={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|EXPORT_CARD_INVALID|Provided card is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EXPORT_CARD_INVALID|Provided card is invalid|
diff --git a/old_docs/API_docs_v42/methods/contacts_resolveUsername.md b/old_docs/API_docs_v42/methods/contacts_resolveUsername.md
index fab56bb1..68f709db 100644
--- a/old_docs/API_docs_v42/methods/contacts_resolveUsername.md
+++ b/old_docs/API_docs_v42/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [contacts\_ResolvedPeer](../types/contacts_ResolvedPeer.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$contacts_ResolvedPeer = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+contacts_ResolvedPeer = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v42/methods/contacts_search.md b/old_docs/API_docs_v42/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v42/methods/contacts_search.md
+++ b/old_docs/API_docs_v42/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v42/methods/contacts_unblock.md b/old_docs/API_docs_v42/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v42/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v42/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v42/methods/help_getConfig.md b/old_docs/API_docs_v42/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v42/methods/help_getConfig.md
+++ b/old_docs/API_docs_v42/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v42/methods/initConnection.md b/old_docs/API_docs_v42/methods/initConnection.md
index 659f4e6b..a41f0c4d 100644
--- a/old_docs/API_docs_v42/methods/initConnection.md
+++ b/old_docs/API_docs_v42/methods/initConnection.md
@@ -47,11 +47,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', lang_code='string', query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v42/methods/invokeWithLayer.md b/old_docs/API_docs_v42/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/old_docs/API_docs_v42/methods/invokeWithLayer.md
+++ b/old_docs/API_docs_v42/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v42/methods/messages_acceptEncryption.md b/old_docs/API_docs_v42/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v42/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v42/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v42/methods/messages_addChatUser.md b/old_docs/API_docs_v42/methods/messages_addChatUser.md
index bc0d6253..b5e164b2 100644
--- a/old_docs/API_docs_v42/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v42/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
Updates = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v42/methods/messages_checkChatInvite.md b/old_docs/API_docs_v42/methods/messages_checkChatInvite.md
index de28b09b..0d13d55e 100644
--- a/old_docs/API_docs_v42/methods/messages_checkChatInvite.md
+++ b/old_docs/API_docs_v42/methods/messages_checkChatInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ChatInvite = messages.checkChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
diff --git a/old_docs/API_docs_v42/methods/messages_createChat.md b/old_docs/API_docs_v42/methods/messages_createChat.md
index 8f6e9672..b2623f1d 100644
--- a/old_docs/API_docs_v42/methods/messages_createChat.md
+++ b/old_docs/API_docs_v42/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v42/methods/messages_deleteChatUser.md b/old_docs/API_docs_v42/methods/messages_deleteChatUser.md
index 63529571..11b9b220 100644
--- a/old_docs/API_docs_v42/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v42/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v42/methods/messages_deleteHistory.md b/old_docs/API_docs_v42/methods/messages_deleteHistory.md
index a906587c..be19b57b 100644
--- a/old_docs/API_docs_v42/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v42/methods/messages_deleteHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v42/methods/messages_deleteMessages.md b/old_docs/API_docs_v42/methods/messages_deleteMessages.md
index 6df3ffec..a0d79592 100644
--- a/old_docs/API_docs_v42/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v42/methods/messages_deleteMessages.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.deleteMessages({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v42/methods/messages_discardEncryption.md b/old_docs/API_docs_v42/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v42/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v42/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v42/methods/messages_editChatAdmin.md b/old_docs/API_docs_v42/methods/messages_editChatAdmin.md
index 2b4dc94c..6f6c1376 100644
--- a/old_docs/API_docs_v42/methods/messages_editChatAdmin.md
+++ b/old_docs/API_docs_v42/methods/messages_editChatAdmin.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.editChatAdmin({chat_id=InputPeer, user_id=InputUser, is_admin=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v42/methods/messages_editChatPhoto.md b/old_docs/API_docs_v42/methods/messages_editChatPhoto.md
index 2a82c232..a21a03b9 100644
--- a/old_docs/API_docs_v42/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v42/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Updates = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v42/methods/messages_editChatTitle.md b/old_docs/API_docs_v42/methods/messages_editChatTitle.md
index 2c338ad6..72f78741 100644
--- a/old_docs/API_docs_v42/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v42/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v42/methods/messages_exportChatInvite.md b/old_docs/API_docs_v42/methods/messages_exportChatInvite.md
index f3449e79..bc6272e4 100644
--- a/old_docs/API_docs_v42/methods/messages_exportChatInvite.md
+++ b/old_docs/API_docs_v42/methods/messages_exportChatInvite.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
ExportedChatInvite = messages.exportChatInvite({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v42/methods/messages_forwardMessage.md b/old_docs/API_docs_v42/methods/messages_forwardMessage.md
index c8e0b18d..95f6d2f3 100644
--- a/old_docs/API_docs_v42/methods/messages_forwardMessage.md
+++ b/old_docs/API_docs_v42/methods/messages_forwardMessage.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Updates = messages.forwardMessage({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|YOU_BLOCKED_USER|You blocked this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|YOU_BLOCKED_USER|You blocked this user|
diff --git a/old_docs/API_docs_v42/methods/messages_forwardMessages.md b/old_docs/API_docs_v42/methods/messages_forwardMessages.md
index baa3d481..ce66ff7b 100644
--- a/old_docs/API_docs_v42/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v42/methods/messages_forwardMessages.md
@@ -45,29 +45,29 @@ Or, if you're into Lua:
Updates = messages.forwardMessages({broadcast=Bool, from_peer=InputPeer, id={int}, to_peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v42/methods/messages_getChats.md b/old_docs/API_docs_v42/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/old_docs/API_docs_v42/methods/messages_getChats.md
+++ b/old_docs/API_docs_v42/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v42/methods/messages_getDhConfig.md b/old_docs/API_docs_v42/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v42/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v42/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v42/methods/messages_getDialogs.md b/old_docs/API_docs_v42/methods/messages_getDialogs.md
index 024b0068..8d8522d5 100644
--- a/old_docs/API_docs_v42/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v42/methods/messages_getDialogs.md
@@ -45,13 +45,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({offset_date=int, offset_id=int, offset_peer=InputPeer, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v42/methods/messages_getFullChat.md b/old_docs/API_docs_v42/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v42/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v42/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v42/methods/messages_getHistory.md b/old_docs/API_docs_v42/methods/messages_getHistory.md
index 2fc5d597..d23331cc 100644
--- a/old_docs/API_docs_v42/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v42/methods/messages_getHistory.md
@@ -47,16 +47,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v42/methods/messages_getMessagesViews.md b/old_docs/API_docs_v42/methods/messages_getMessagesViews.md
index 3d490315..143e568c 100644
--- a/old_docs/API_docs_v42/methods/messages_getMessagesViews.md
+++ b/old_docs/API_docs_v42/methods/messages_getMessagesViews.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
Vector_of_int = messages.getMessagesViews({peer=InputPeer, id={int}, increment=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v42/methods/messages_getStickerSet.md b/old_docs/API_docs_v42/methods/messages_getStickerSet.md
index 57bce84d..487316cc 100644
--- a/old_docs/API_docs_v42/methods/messages_getStickerSet.md
+++ b/old_docs/API_docs_v42/methods/messages_getStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_StickerSet = messages.getStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v42/methods/messages_importChatInvite.md b/old_docs/API_docs_v42/methods/messages_importChatInvite.md
index 12120867..101b4b19 100644
--- a/old_docs/API_docs_v42/methods/messages_importChatInvite.md
+++ b/old_docs/API_docs_v42/methods/messages_importChatInvite.md
@@ -42,16 +42,16 @@ Or, if you're into Lua:
Updates = messages.importChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v42/methods/messages_installStickerSet.md b/old_docs/API_docs_v42/methods/messages_installStickerSet.md
index e1f691f2..3803f946 100644
--- a/old_docs/API_docs_v42/methods/messages_installStickerSet.md
+++ b/old_docs/API_docs_v42/methods/messages_installStickerSet.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.installStickerSet({stickerset=InputStickerSet, disabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v42/methods/messages_migrateChat.md b/old_docs/API_docs_v42/methods/messages_migrateChat.md
index a72f4c11..ee4010eb 100644
--- a/old_docs/API_docs_v42/methods/messages_migrateChat.md
+++ b/old_docs/API_docs_v42/methods/messages_migrateChat.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
Updates = messages.migrateChat({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v42/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v42/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v42/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v42/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v42/methods/messages_readHistory.md b/old_docs/API_docs_v42/methods/messages_readHistory.md
index 2ad5cd09..a7f0eca7 100644
--- a/old_docs/API_docs_v42/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v42/methods/messages_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.readHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v42/methods/messages_receivedQueue.md b/old_docs/API_docs_v42/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v42/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v42/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v42/methods/messages_reportSpam.md b/old_docs/API_docs_v42/methods/messages_reportSpam.md
index e92fba13..dc256e55 100644
--- a/old_docs/API_docs_v42/methods/messages_reportSpam.md
+++ b/old_docs/API_docs_v42/methods/messages_reportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v42/methods/messages_requestEncryption.md b/old_docs/API_docs_v42/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v42/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v42/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v42/methods/messages_search.md b/old_docs/API_docs_v42/methods/messages_search.md
index 32efc390..f8941cac 100644
--- a/old_docs/API_docs_v42/methods/messages_search.md
+++ b/old_docs/API_docs_v42/methods/messages_search.md
@@ -50,16 +50,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({important_only=Bool, peer=InputPeer, q='string', filter=MessagesFilter, min_date=int, max_date=int, offset=int, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v42/methods/messages_searchGlobal.md b/old_docs/API_docs_v42/methods/messages_searchGlobal.md
index fb38398b..c8da163c 100644
--- a/old_docs/API_docs_v42/methods/messages_searchGlobal.md
+++ b/old_docs/API_docs_v42/methods/messages_searchGlobal.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
messages_Messages = messages.searchGlobal({q='string', offset_date=int, offset_peer=InputPeer, offset_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v42/methods/messages_sendEncrypted.md b/old_docs/API_docs_v42/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v42/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v42/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v42/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v42/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v42/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v42/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v42/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v42/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v42/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v42/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v42/methods/messages_sendMedia.md b/old_docs/API_docs_v42/methods/messages_sendMedia.md
index 8413e296..1770c3ea 100644
--- a/old_docs/API_docs_v42/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v42/methods/messages_sendMedia.md
@@ -52,31 +52,31 @@ Updates = messages.sendMedia({broadcast=Bool, peer=InputPeer, reply_to_msg_id=in
You can provide bot API reply_markup objects here.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v42/methods/messages_sendMessage.md b/old_docs/API_docs_v42/methods/messages_sendMessage.md
index 4a990893..39f9df64 100644
--- a/old_docs/API_docs_v42/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v42/methods/messages_sendMessage.md
@@ -97,31 +97,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v42/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v42/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v42/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v42/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v42/methods/messages_setTyping.md b/old_docs/API_docs_v42/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v42/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v42/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v42/methods/messages_startBot.md b/old_docs/API_docs_v42/methods/messages_startBot.md
index aa2b2d00..4bf12aa6 100644
--- a/old_docs/API_docs_v42/methods/messages_startBot.md
+++ b/old_docs/API_docs_v42/methods/messages_startBot.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = messages.startBot({bot=InputUser, peer=InputPeer, start_param='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INVALID|This is not a valid bot|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|START_PARAM_EMPTY|The start parameter is empty|
-|START_PARAM_INVALID|Start parameter invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INVALID|This is not a valid bot|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|START_PARAM_EMPTY|The start parameter is empty|
+|400|START_PARAM_INVALID|Start parameter invalid|
diff --git a/old_docs/API_docs_v42/methods/messages_toggleChatAdmins.md b/old_docs/API_docs_v42/methods/messages_toggleChatAdmins.md
index 7851806d..8ea6e65e 100644
--- a/old_docs/API_docs_v42/methods/messages_toggleChatAdmins.md
+++ b/old_docs/API_docs_v42/methods/messages_toggleChatAdmins.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.toggleChatAdmins({chat_id=InputPeer, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v42/methods/messages_uninstallStickerSet.md b/old_docs/API_docs_v42/methods/messages_uninstallStickerSet.md
index 59abc510..6b7a2006 100644
--- a/old_docs/API_docs_v42/methods/messages_uninstallStickerSet.md
+++ b/old_docs/API_docs_v42/methods/messages_uninstallStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.uninstallStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v42/methods/photos_getUserPhotos.md b/old_docs/API_docs_v42/methods/photos_getUserPhotos.md
index 57f5772b..a01f3180 100644
--- a/old_docs/API_docs_v42/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v42/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v42/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v42/methods/photos_updateProfilePhoto.md
index 53d0b12f..db7fe164 100644
--- a/old_docs/API_docs_v42/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v42/methods/photos_updateProfilePhoto.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, crop=InputPhotoCrop, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v42/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v42/methods/photos_uploadProfilePhoto.md
index f140329e..10653c42 100644
--- a/old_docs/API_docs_v42/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v42/methods/photos_uploadProfilePhoto.md
@@ -45,13 +45,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, caption='string', geo_point=InputGeoPoint, crop=InputPhotoCrop, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v42/methods/updates_getChannelDifference.md b/old_docs/API_docs_v42/methods/updates_getChannelDifference.md
index 6fa79529..08d497ed 100644
--- a/old_docs/API_docs_v42/methods/updates_getChannelDifference.md
+++ b/old_docs/API_docs_v42/methods/updates_getChannelDifference.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|filter|[ChannelMessagesFilter](../types/ChannelMessagesFilter.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_ChannelDifference](../types/updates_ChannelDifference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_ChannelDifference = $MadelineProto->updates->getChannelDifference(['channel' => InputChannel, 'filter' => ChannelMessagesFilter, 'pts' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_ChannelDifference = updates.getChannelDifference({channel=InputChannel, filter=ChannelMessagesFilter, pts=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|400|RANGES_INVALID|Invalid range provided|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v42/methods/updates_getDifference.md b/old_docs/API_docs_v42/methods/updates_getDifference.md
index 33e7d7f2..57ea6d99 100644
--- a/old_docs/API_docs_v42/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v42/methods/updates_getDifference.md
@@ -7,8 +7,54 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v42/methods/updates_getState.md b/old_docs/API_docs_v42/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v42/methods/updates_getState.md
+++ b/old_docs/API_docs_v42/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v42/methods/upload_getFile.md b/old_docs/API_docs_v42/methods/upload_getFile.md
index c72e6090..d8b433d6 100644
--- a/old_docs/API_docs_v42/methods/upload_getFile.md
+++ b/old_docs/API_docs_v42/methods/upload_getFile.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v42/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v42/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v42/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v42/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v42/methods/upload_saveFilePart.md b/old_docs/API_docs_v42/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v42/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v42/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v42/methods/users_getFullUser.md b/old_docs/API_docs_v42/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v42/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v42/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v42/methods/users_getUsers.md b/old_docs/API_docs_v42/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v42/methods/users_getUsers.md
+++ b/old_docs/API_docs_v42/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v44/methods/README.md b/old_docs/API_docs_v44/methods/README.md
index d23b846d..a161eab6 100644
--- a/old_docs/API_docs_v44/methods/README.md
+++ b/old_docs/API_docs_v44/methods/README.md
@@ -30,259 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Add a sticker set: messages.installStickerSet
-
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add phone number as contact: contacts.importContacts
-
-* Add users to channel/supergroup: channels.inviteToChannel
-
-* Block a user: contacts.block
-
-* Change notification settings: account.updateNotifySettings
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if an invitation link is valid: messages.checkChatInvite
-
-* Check if this phone number is registered on telegram: auth.checkPhone
-
-* Check if this username is available: account.checkUsername
-
-* Check if this username is free and can be assigned to a channel/supergroup: channels.checkUsername
-
-* Convert chat to supergroup: messages.migrateChat
-
-* Create a chat (not supergroup): messages.createChat
-
-* Create channel/supergroup: channels.createChannel
-
-* Delete a certain session: account.resetAuthorization
-
-* Delete a channel/supergroup: channels.deleteChannel
-
-* Delete a contact: contacts.deleteContact
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete all messages of a user in a channel/supergroup: channels.deleteUserHistory
-
-* Delete channel/supergroup messages: channels.deleteMessages
-
-* Delete chat history: messages.deleteHistory
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete this account: account.deleteAccount
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Edit admin permissions of a user in a channel/supergroup: channels.editAdmin
-
-* Edit admin permissions: messages.editChatAdmin
-
-* Edit the about text of a channel/supergroup: channels.editAbout
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the photo of a supergroup/channel: channels.editPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Edit the title of a supergroup/channel: channels.editTitle
-
-* Enable all users are admins in normal groups (not supergroups): messages.toggleChatAdmins
-
-* Enable channel comments: channels.toggleComments
-
-* Export chat invite : messages.exportChatInvite
-
-* Export contact as card: contacts.exportCard
-
-* Export the invite link of a channel: channels.exportInvite
-
-* Forward message: messages.forwardMessage
-
-* Forward messages: messages.forwardMessages
-
-* Get a stickerset: messages.getStickerSet
-
-* Get account TTL: account.getAccountTTL
-
-* Get all contacts: contacts.getContacts
-
-* Get all logged-in authorizations: account.getAuthorizations
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get and increase message views: messages.getMessagesViews
-
-* Get blocked users: contacts.getBlocked
-
-* Get channel dialogs: channels.getDialogs
-
-* Get channel/supergroup messages: channels.getMessages
-
-* Get channel/supergroup participants (you should use `$MadelineProto->get_pwr_chat($id)` instead): channels.getParticipants
-
-* Get document by SHA256 hash: messages.getDocumentByHash
-
-* Get important channel/supergroup history: channels.getImportantHistory
-
-* Get info about a certain channel/supergroup participant: channels.getParticipant
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about multiple channels/supergroups: channels.getChannels
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get invitation text: help.getInviteText
-
-* Get messages: messages.getMessages
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get server configuration: help.getConfig
-
-* Get stickers: messages.getStickers
-
-* Get suggested contacts: contacts.getSuggested
-
-* Get terms of service: help.getTermsOfService
-
-* Get the changelog of this app: help.getAppChangelog
-
-* Get the current password: account.getPassword
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Get webpage preview: messages.getWebPagePreview
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Global message search: messages.searchGlobal
-
-* Import card as contact: contacts.importCard
-
-* Import chat invite: messages.importChatInvite
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Invite friends to telegram!: auth.sendInvites
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invoke with method without returning updates in the socket: invokeWithoutUpdates
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Join a channel/supergroup: channels.joinChannel
-
-* Kick user from channel: channels.kickFromChannel
-
-* Leave a channel/supergroup: channels.leaveChannel
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark channel/supergroup history as read: channels.readHistory
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Register device for push notifications: account.registerDevice
-
-* Remove a sticker set: messages.uninstallStickerSet
-
-* Reorder sticker sets: messages.reorderStickerSets
-
-* Report a message in a supergroup/channel for spam: channels.reportSpam
-
-* Report a peer for spam: messages.reportSpam
-
-* Report for spam: account.reportPeer
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Search contacts: contacts.search
-
-* Search gifs: messages.searchGifs
-
-* Search peers or messages: messages.search
-
-* Send SMS verification code: auth.sendSms
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message to all users in the chat list: messages.sendBroadcast
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send an email to recover the 2FA password: auth.requestPasswordRecovery
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Send verification phone call: auth.sendCall
-
-* Set account TTL: account.setAccountTTL
-
-* Set privacy settings: account.setPrivacy
-
-* Start a bot: messages.startBot
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update profile info: account.updateProfile
-
-* Update the username of a supergroup/channel: channels.updateUsername
-
-* Update this user's username: account.updateUsername
-
-* Upload profile photo: photos.uploadProfilePhoto
-
-* Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
-
diff --git a/old_docs/API_docs_v44/methods/account_changePhone.md b/old_docs/API_docs_v44/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/old_docs/API_docs_v44/methods/account_changePhone.md
+++ b/old_docs/API_docs_v44/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v44/methods/account_checkUsername.md b/old_docs/API_docs_v44/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v44/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v44/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v44/methods/account_getNotifySettings.md b/old_docs/API_docs_v44/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v44/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v44/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v44/methods/account_getPasswordSettings.md b/old_docs/API_docs_v44/methods/account_getPasswordSettings.md
index 8ebb78ee..8f878365 100644
--- a/old_docs/API_docs_v44/methods/account_getPasswordSettings.md
+++ b/old_docs/API_docs_v44/methods/account_getPasswordSettings.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+Get the current 2FA settings
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+### Return type: [account\_PasswordSettings](../types/account_PasswordSettings.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$account_PasswordSettings = $MadelineProto->account->getPasswordSettings(['current_password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+account_PasswordSettings = account.getPasswordSettings({current_password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v44/methods/account_getPrivacy.md b/old_docs/API_docs_v44/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/old_docs/API_docs_v44/methods/account_getPrivacy.md
+++ b/old_docs/API_docs_v44/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v44/methods/account_registerDevice.md b/old_docs/API_docs_v44/methods/account_registerDevice.md
index ab5a56a6..908977a3 100644
--- a/old_docs/API_docs_v44/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v44/methods/account_registerDevice.md
@@ -48,10 +48,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({token_type=int, token='string', device_model='string', system_version='string', app_version='string', app_sandbox=Bool, lang_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v44/methods/account_reportPeer.md b/old_docs/API_docs_v44/methods/account_reportPeer.md
index a203c900..87b080eb 100644
--- a/old_docs/API_docs_v44/methods/account_reportPeer.md
+++ b/old_docs/API_docs_v44/methods/account_reportPeer.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.reportPeer({peer=InputPeer, reason=ReportReason, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v44/methods/account_resetAuthorization.md b/old_docs/API_docs_v44/methods/account_resetAuthorization.md
index c950992c..e8e8ecc4 100644
--- a/old_docs/API_docs_v44/methods/account_resetAuthorization.md
+++ b/old_docs/API_docs_v44/methods/account_resetAuthorization.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.resetAuthorization({hash=long, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v44/methods/account_sendChangePhoneCode.md b/old_docs/API_docs_v44/methods/account_sendChangePhoneCode.md
index c4bc0675..8537d9d9 100644
--- a/old_docs/API_docs_v44/methods/account_sendChangePhoneCode.md
+++ b/old_docs/API_docs_v44/methods/account_sendChangePhoneCode.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_SentChangePhoneCode = account.sendChangePhoneCode({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v44/methods/account_setAccountTTL.md b/old_docs/API_docs_v44/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/old_docs/API_docs_v44/methods/account_setAccountTTL.md
+++ b/old_docs/API_docs_v44/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/old_docs/API_docs_v44/methods/account_setPrivacy.md b/old_docs/API_docs_v44/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/old_docs/API_docs_v44/methods/account_setPrivacy.md
+++ b/old_docs/API_docs_v44/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v44/methods/account_unregisterDevice.md b/old_docs/API_docs_v44/methods/account_unregisterDevice.md
index 589f48b0..a184da43 100644
--- a/old_docs/API_docs_v44/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v44/methods/account_unregisterDevice.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v44/methods/account_updateNotifySettings.md b/old_docs/API_docs_v44/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v44/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v44/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v44/methods/account_updatePasswordSettings.md b/old_docs/API_docs_v44/methods/account_updatePasswordSettings.md
index 80f27228..68e5da6d 100644
--- a/old_docs/API_docs_v44/methods/account_updatePasswordSettings.md
+++ b/old_docs/API_docs_v44/methods/account_updatePasswordSettings.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+|new\_settings|[account\_PasswordInputSettings](../types/account_PasswordInputSettings.md) | New 2FA settings | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->account->updatePasswordSettings(['current_password_hash' => 'bytes', 'new_settings' => account_PasswordInputSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = account.updatePasswordSettings({current_password_hash='bytes', new_settings=account_PasswordInputSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EMAIL_UNCONFIRMED|Email unconfirmed|
+|400|EMAIL_UNCONFIRMED_X|The provided email isn't confirmed, X is the length of the verification code that was just sent to the email.|
+|400|NEW_SALT_INVALID|The new salt is invalid|
+|400|NEW_SETTINGS_INVALID|The new settings are invalid|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v44/methods/account_updateProfile.md b/old_docs/API_docs_v44/methods/account_updateProfile.md
index 486f63bc..33423686 100644
--- a/old_docs/API_docs_v44/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v44/methods/account_updateProfile.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v44/methods/account_updateStatus.md b/old_docs/API_docs_v44/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v44/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v44/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v44/methods/account_updateUsername.md b/old_docs/API_docs_v44/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v44/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v44/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v44/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v44/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v44/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v44/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v44/methods/auth_checkPassword.md b/old_docs/API_docs_v44/methods/auth_checkPassword.md
index 8d76c483..db65cb56 100644
--- a/old_docs/API_docs_v44/methods/auth_checkPassword.md
+++ b/old_docs/API_docs_v44/methods/auth_checkPassword.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->checkPassword(['password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.checkPassword({password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v44/methods/auth_checkPhone.md b/old_docs/API_docs_v44/methods/auth_checkPhone.md
index f3e32365..e974ce7f 100644
--- a/old_docs/API_docs_v44/methods/auth_checkPhone.md
+++ b/old_docs/API_docs_v44/methods/auth_checkPhone.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
auth_CheckedPhone = auth.checkPhone({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v44/methods/auth_exportAuthorization.md b/old_docs/API_docs_v44/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v44/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v44/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v44/methods/auth_importAuthorization.md b/old_docs/API_docs_v44/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v44/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v44/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v44/methods/auth_importBotAuthorization.md b/old_docs/API_docs_v44/methods/auth_importBotAuthorization.md
index 1a98c1b9..98a2f8ca 100644
--- a/old_docs/API_docs_v44/methods/auth_importBotAuthorization.md
+++ b/old_docs/API_docs_v44/methods/auth_importBotAuthorization.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|api\_id|[int](../types/int.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_hash|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|bot\_auth\_token|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importBotAuthorization(['api_id' => int, 'api_hash' => 'string', 'bot_auth_token' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importBotAuthorization({api_id=int, api_hash='string', bot_auth_token='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ACCESS_TOKEN_EXPIRED|Access token expired|
+|400|ACCESS_TOKEN_INVALID|Access token invalid|
+|400|API_ID_INVALID|API ID invalid|
diff --git a/old_docs/API_docs_v44/methods/auth_logOut.md b/old_docs/API_docs_v44/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v44/methods/auth_logOut.md
+++ b/old_docs/API_docs_v44/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v44/methods/auth_recoverPassword.md b/old_docs/API_docs_v44/methods/auth_recoverPassword.md
index 83ff5aed..d4bad9c5 100644
--- a/old_docs/API_docs_v44/methods/auth_recoverPassword.md
+++ b/old_docs/API_docs_v44/methods/auth_recoverPassword.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
auth_Authorization = auth.recoverPassword({code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_EMPTY|The provided code is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_EMPTY|The provided code is empty|
diff --git a/old_docs/API_docs_v44/methods/auth_requestPasswordRecovery.md b/old_docs/API_docs_v44/methods/auth_requestPasswordRecovery.md
index 1864bbb0..b6ad57ba 100644
--- a/old_docs/API_docs_v44/methods/auth_requestPasswordRecovery.md
+++ b/old_docs/API_docs_v44/methods/auth_requestPasswordRecovery.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
auth_PasswordRecovery = auth.requestPasswordRecovery({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_EMPTY|The provided password is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_EMPTY|The provided password is empty|
diff --git a/old_docs/API_docs_v44/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v44/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v44/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v44/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v44/methods/auth_sendCode.md b/old_docs/API_docs_v44/methods/auth_sendCode.md
index 9afebb55..4e856d6a 100644
--- a/old_docs/API_docs_v44/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v44/methods/auth_sendCode.md
@@ -7,8 +7,59 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|sms\_type|[int](../types/int.md) | You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+|lang\_code|[string](../types/string.md) | You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['phone_number' => 'string', 'sms_type' => int, 'api_id' => int, 'api_hash' => 'string', 'lang_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({phone_number='string', sms_type=int, api_id=int, api_hash='string', lang_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v44/methods/auth_sendInvites.md b/old_docs/API_docs_v44/methods/auth_sendInvites.md
index e10c1109..4c11023e 100644
--- a/old_docs/API_docs_v44/methods/auth_sendInvites.md
+++ b/old_docs/API_docs_v44/methods/auth_sendInvites.md
@@ -49,10 +49,10 @@ Bool = auth.sendInvites({phone_numbers={'string'}, message='string', })
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_EMPTY|The provided message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_EMPTY|The provided message is empty|
diff --git a/old_docs/API_docs_v44/methods/auth_signIn.md b/old_docs/API_docs_v44/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v44/methods/auth_signIn.md
+++ b/old_docs/API_docs_v44/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v44/methods/auth_signUp.md b/old_docs/API_docs_v44/methods/auth_signUp.md
index 15960145..31154486 100644
--- a/old_docs/API_docs_v44/methods/auth_signUp.md
+++ b/old_docs/API_docs_v44/methods/auth_signUp.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', phone_code='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v44/methods/channels_checkUsername.md b/old_docs/API_docs_v44/methods/channels_checkUsername.md
index 483a2f6f..52365d34 100644
--- a/old_docs/API_docs_v44/methods/channels_checkUsername.md
+++ b/old_docs/API_docs_v44/methods/channels_checkUsername.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Bool = channels.checkUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v44/methods/channels_createChannel.md b/old_docs/API_docs_v44/methods/channels_createChannel.md
index b924e6a6..ecaee0ef 100644
--- a/old_docs/API_docs_v44/methods/channels_createChannel.md
+++ b/old_docs/API_docs_v44/methods/channels_createChannel.md
@@ -45,12 +45,12 @@ Or, if you're into Lua:
Updates = channels.createChannel({broadcast=Bool, megagroup=Bool, title='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_TITLE_EMPTY|No chat title provided|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
+|406|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v44/methods/channels_deleteChannel.md b/old_docs/API_docs_v44/methods/channels_deleteChannel.md
index 53a9c23d..1b8d2d48 100644
--- a/old_docs/API_docs_v44/methods/channels_deleteChannel.md
+++ b/old_docs/API_docs_v44/methods/channels_deleteChannel.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Updates = channels.deleteChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v44/methods/channels_deleteMessages.md b/old_docs/API_docs_v44/methods/channels_deleteMessages.md
index f76a9ad1..463ebad0 100644
--- a/old_docs/API_docs_v44/methods/channels_deleteMessages.md
+++ b/old_docs/API_docs_v44/methods/channels_deleteMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_AffectedMessages = channels.deleteMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v44/methods/channels_deleteUserHistory.md b/old_docs/API_docs_v44/methods/channels_deleteUserHistory.md
index 0a4e7d82..33905a7e 100644
--- a/old_docs/API_docs_v44/methods/channels_deleteUserHistory.md
+++ b/old_docs/API_docs_v44/methods/channels_deleteUserHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedHistory = channels.deleteUserHistory({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v44/methods/channels_editAbout.md b/old_docs/API_docs_v44/methods/channels_editAbout.md
index 47111668..d5e090e0 100644
--- a/old_docs/API_docs_v44/methods/channels_editAbout.md
+++ b/old_docs/API_docs_v44/methods/channels_editAbout.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Bool = channels.editAbout({channel=InputChannel, about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
-|CHAT_ABOUT_TOO_LONG|Chat about too long|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
+|400|CHAT_ABOUT_TOO_LONG|Chat about too long|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v44/methods/channels_editAdmin.md b/old_docs/API_docs_v44/methods/channels_editAdmin.md
index 3fbaf64d..229318fb 100644
--- a/old_docs/API_docs_v44/methods/channels_editAdmin.md
+++ b/old_docs/API_docs_v44/methods/channels_editAdmin.md
@@ -44,19 +44,19 @@ Or, if you're into Lua:
Updates = channels.editAdmin({channel=InputChannel, user_id=InputUser, role=ChannelParticipantRole, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ADMINS_TOO_MUCH|There are too many admins|
-|BOT_CHANNELS_NA|Bots can't edit admin privileges|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
-|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ADMINS_TOO_MUCH|There are too many admins|
+|400|BOT_CHANNELS_NA|Bots can't edit admin privileges|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
+|403|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v44/methods/channels_editPhoto.md b/old_docs/API_docs_v44/methods/channels_editPhoto.md
index bec0ba48..caef32d5 100644
--- a/old_docs/API_docs_v44/methods/channels_editPhoto.md
+++ b/old_docs/API_docs_v44/methods/channels_editPhoto.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editPhoto({channel=InputChannel, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|PHOTO_INVALID|Photo invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|PHOTO_INVALID|Photo invalid|
diff --git a/old_docs/API_docs_v44/methods/channels_editTitle.md b/old_docs/API_docs_v44/methods/channels_editTitle.md
index b5efeb39..d7cb33da 100644
--- a/old_docs/API_docs_v44/methods/channels_editTitle.md
+++ b/old_docs/API_docs_v44/methods/channels_editTitle.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editTitle({channel=InputChannel, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v44/methods/channels_exportInvite.md b/old_docs/API_docs_v44/methods/channels_exportInvite.md
index 0918b3e7..9d578deb 100644
--- a/old_docs/API_docs_v44/methods/channels_exportInvite.md
+++ b/old_docs/API_docs_v44/methods/channels_exportInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ExportedChatInvite = channels.exportInvite({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INVITE_HASH_EXPIRED|The invite link has expired|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
diff --git a/old_docs/API_docs_v44/methods/channels_getChannels.md b/old_docs/API_docs_v44/methods/channels_getChannels.md
index 78d50641..95d7a188 100644
--- a/old_docs/API_docs_v44/methods/channels_getChannels.md
+++ b/old_docs/API_docs_v44/methods/channels_getChannels.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = channels.getChannels({id={InputChannel}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v44/methods/channels_getFullChannel.md b/old_docs/API_docs_v44/methods/channels_getFullChannel.md
index 45a8ec72..ebd53de4 100644
--- a/old_docs/API_docs_v44/methods/channels_getFullChannel.md
+++ b/old_docs/API_docs_v44/methods/channels_getFullChannel.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->channels->getFullChannel(['channel' => InputChannel, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = channels.getFullChannel({channel=InputChannel, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v44/methods/channels_getMessages.md b/old_docs/API_docs_v44/methods/channels_getMessages.md
index aa85d640..57bcc60f 100644
--- a/old_docs/API_docs_v44/methods/channels_getMessages.md
+++ b/old_docs/API_docs_v44/methods/channels_getMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_Messages = channels.getMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
diff --git a/old_docs/API_docs_v44/methods/channels_getParticipant.md b/old_docs/API_docs_v44/methods/channels_getParticipant.md
index 6633114f..808156fd 100644
--- a/old_docs/API_docs_v44/methods/channels_getParticipant.md
+++ b/old_docs/API_docs_v44/methods/channels_getParticipant.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
channels_ChannelParticipant = channels.getParticipant({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v44/methods/channels_getParticipants.md b/old_docs/API_docs_v44/methods/channels_getParticipants.md
index d4bd8779..21d4a418 100644
--- a/old_docs/API_docs_v44/methods/channels_getParticipants.md
+++ b/old_docs/API_docs_v44/methods/channels_getParticipants.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, filter=ChannelParticipantsFilter, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v44/methods/channels_inviteToChannel.md b/old_docs/API_docs_v44/methods/channels_inviteToChannel.md
index f7093f13..d8c5e88a 100644
--- a/old_docs/API_docs_v44/methods/channels_inviteToChannel.md
+++ b/old_docs/API_docs_v44/methods/channels_inviteToChannel.md
@@ -43,25 +43,25 @@ Or, if you're into Lua:
Updates = channels.inviteToChannel({channel=InputChannel, users={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
-|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_BLOCKED|User blocked|
-|USER_BOT|Bots can only be admins in channels.|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_KICKED|This user was kicked from this supergroup/channel|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
+|400|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_BLOCKED|User blocked|
+|400|USER_BOT|Bots can only be admins in channels.|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_KICKED|This user was kicked from this supergroup/channel|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v44/methods/channels_joinChannel.md b/old_docs/API_docs_v44/methods/channels_joinChannel.md
index b056031a..a4a7c177 100644
--- a/old_docs/API_docs_v44/methods/channels_joinChannel.md
+++ b/old_docs/API_docs_v44/methods/channels_joinChannel.md
@@ -42,15 +42,15 @@ Or, if you're into Lua:
Updates = channels.joinChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
diff --git a/old_docs/API_docs_v44/methods/channels_leaveChannel.md b/old_docs/API_docs_v44/methods/channels_leaveChannel.md
index fdea13ba..6538d443 100644
--- a/old_docs/API_docs_v44/methods/channels_leaveChannel.md
+++ b/old_docs/API_docs_v44/methods/channels_leaveChannel.md
@@ -42,14 +42,14 @@ Or, if you're into Lua:
Updates = channels.leaveChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
-|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
diff --git a/old_docs/API_docs_v44/methods/channels_readHistory.md b/old_docs/API_docs_v44/methods/channels_readHistory.md
index 93dc075f..3532dae0 100644
--- a/old_docs/API_docs_v44/methods/channels_readHistory.md
+++ b/old_docs/API_docs_v44/methods/channels_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readHistory({channel=InputChannel, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v44/methods/channels_reportSpam.md b/old_docs/API_docs_v44/methods/channels_reportSpam.md
index db80676a..7e273cc5 100644
--- a/old_docs/API_docs_v44/methods/channels_reportSpam.md
+++ b/old_docs/API_docs_v44/methods/channels_reportSpam.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
Bool = channels.reportSpam({channel=InputChannel, user_id=InputUser, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
diff --git a/old_docs/API_docs_v44/methods/channels_updateUsername.md b/old_docs/API_docs_v44/methods/channels_updateUsername.md
index 677712f9..48d250e6 100644
--- a/old_docs/API_docs_v44/methods/channels_updateUsername.md
+++ b/old_docs/API_docs_v44/methods/channels_updateUsername.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Bool = channels.updateUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_OCCUPIED|The provided username is already occupied|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
diff --git a/old_docs/API_docs_v44/methods/contacts_block.md b/old_docs/API_docs_v44/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v44/methods/contacts_block.md
+++ b/old_docs/API_docs_v44/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v44/methods/contacts_deleteContact.md b/old_docs/API_docs_v44/methods/contacts_deleteContact.md
index ba9569e4..a9321d64 100644
--- a/old_docs/API_docs_v44/methods/contacts_deleteContact.md
+++ b/old_docs/API_docs_v44/methods/contacts_deleteContact.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
contacts_Link = contacts.deleteContact({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v44/methods/contacts_deleteContacts.md b/old_docs/API_docs_v44/methods/contacts_deleteContacts.md
index bfc91fdd..3c8e90f0 100644
--- a/old_docs/API_docs_v44/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v44/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v44/methods/contacts_getStatuses.md b/old_docs/API_docs_v44/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v44/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v44/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v44/methods/contacts_importCard.md b/old_docs/API_docs_v44/methods/contacts_importCard.md
index 15addde1..ed3d17fe 100644
--- a/old_docs/API_docs_v44/methods/contacts_importCard.md
+++ b/old_docs/API_docs_v44/methods/contacts_importCard.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
User = contacts.importCard({export_card={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|EXPORT_CARD_INVALID|Provided card is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EXPORT_CARD_INVALID|Provided card is invalid|
diff --git a/old_docs/API_docs_v44/methods/contacts_resolveUsername.md b/old_docs/API_docs_v44/methods/contacts_resolveUsername.md
index fab56bb1..68f709db 100644
--- a/old_docs/API_docs_v44/methods/contacts_resolveUsername.md
+++ b/old_docs/API_docs_v44/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [contacts\_ResolvedPeer](../types/contacts_ResolvedPeer.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$contacts_ResolvedPeer = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+contacts_ResolvedPeer = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v44/methods/contacts_search.md b/old_docs/API_docs_v44/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v44/methods/contacts_search.md
+++ b/old_docs/API_docs_v44/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v44/methods/contacts_unblock.md b/old_docs/API_docs_v44/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v44/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v44/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v44/methods/help_getConfig.md b/old_docs/API_docs_v44/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v44/methods/help_getConfig.md
+++ b/old_docs/API_docs_v44/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v44/methods/initConnection.md b/old_docs/API_docs_v44/methods/initConnection.md
index 659f4e6b..a41f0c4d 100644
--- a/old_docs/API_docs_v44/methods/initConnection.md
+++ b/old_docs/API_docs_v44/methods/initConnection.md
@@ -47,11 +47,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', lang_code='string', query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v44/methods/invokeWithLayer.md b/old_docs/API_docs_v44/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/old_docs/API_docs_v44/methods/invokeWithLayer.md
+++ b/old_docs/API_docs_v44/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v44/methods/messages_acceptEncryption.md b/old_docs/API_docs_v44/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v44/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v44/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v44/methods/messages_addChatUser.md b/old_docs/API_docs_v44/methods/messages_addChatUser.md
index bc0d6253..b5e164b2 100644
--- a/old_docs/API_docs_v44/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v44/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
Updates = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v44/methods/messages_checkChatInvite.md b/old_docs/API_docs_v44/methods/messages_checkChatInvite.md
index de28b09b..0d13d55e 100644
--- a/old_docs/API_docs_v44/methods/messages_checkChatInvite.md
+++ b/old_docs/API_docs_v44/methods/messages_checkChatInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ChatInvite = messages.checkChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
diff --git a/old_docs/API_docs_v44/methods/messages_createChat.md b/old_docs/API_docs_v44/methods/messages_createChat.md
index 8f6e9672..b2623f1d 100644
--- a/old_docs/API_docs_v44/methods/messages_createChat.md
+++ b/old_docs/API_docs_v44/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v44/methods/messages_deleteChatUser.md b/old_docs/API_docs_v44/methods/messages_deleteChatUser.md
index 63529571..11b9b220 100644
--- a/old_docs/API_docs_v44/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v44/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v44/methods/messages_deleteHistory.md b/old_docs/API_docs_v44/methods/messages_deleteHistory.md
index a906587c..be19b57b 100644
--- a/old_docs/API_docs_v44/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v44/methods/messages_deleteHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v44/methods/messages_deleteMessages.md b/old_docs/API_docs_v44/methods/messages_deleteMessages.md
index 6df3ffec..a0d79592 100644
--- a/old_docs/API_docs_v44/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v44/methods/messages_deleteMessages.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.deleteMessages({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v44/methods/messages_discardEncryption.md b/old_docs/API_docs_v44/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v44/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v44/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v44/methods/messages_editChatAdmin.md b/old_docs/API_docs_v44/methods/messages_editChatAdmin.md
index 2b4dc94c..6f6c1376 100644
--- a/old_docs/API_docs_v44/methods/messages_editChatAdmin.md
+++ b/old_docs/API_docs_v44/methods/messages_editChatAdmin.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.editChatAdmin({chat_id=InputPeer, user_id=InputUser, is_admin=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v44/methods/messages_editChatPhoto.md b/old_docs/API_docs_v44/methods/messages_editChatPhoto.md
index 2a82c232..a21a03b9 100644
--- a/old_docs/API_docs_v44/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v44/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Updates = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v44/methods/messages_editChatTitle.md b/old_docs/API_docs_v44/methods/messages_editChatTitle.md
index 2c338ad6..72f78741 100644
--- a/old_docs/API_docs_v44/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v44/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v44/methods/messages_exportChatInvite.md b/old_docs/API_docs_v44/methods/messages_exportChatInvite.md
index f3449e79..bc6272e4 100644
--- a/old_docs/API_docs_v44/methods/messages_exportChatInvite.md
+++ b/old_docs/API_docs_v44/methods/messages_exportChatInvite.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
ExportedChatInvite = messages.exportChatInvite({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v44/methods/messages_forwardMessage.md b/old_docs/API_docs_v44/methods/messages_forwardMessage.md
index c8e0b18d..95f6d2f3 100644
--- a/old_docs/API_docs_v44/methods/messages_forwardMessage.md
+++ b/old_docs/API_docs_v44/methods/messages_forwardMessage.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Updates = messages.forwardMessage({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|YOU_BLOCKED_USER|You blocked this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|YOU_BLOCKED_USER|You blocked this user|
diff --git a/old_docs/API_docs_v44/methods/messages_forwardMessages.md b/old_docs/API_docs_v44/methods/messages_forwardMessages.md
index baa3d481..ce66ff7b 100644
--- a/old_docs/API_docs_v44/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v44/methods/messages_forwardMessages.md
@@ -45,29 +45,29 @@ Or, if you're into Lua:
Updates = messages.forwardMessages({broadcast=Bool, from_peer=InputPeer, id={int}, to_peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v44/methods/messages_getChats.md b/old_docs/API_docs_v44/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/old_docs/API_docs_v44/methods/messages_getChats.md
+++ b/old_docs/API_docs_v44/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v44/methods/messages_getDhConfig.md b/old_docs/API_docs_v44/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v44/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v44/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v44/methods/messages_getDialogs.md b/old_docs/API_docs_v44/methods/messages_getDialogs.md
index 024b0068..8d8522d5 100644
--- a/old_docs/API_docs_v44/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v44/methods/messages_getDialogs.md
@@ -45,13 +45,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({offset_date=int, offset_id=int, offset_peer=InputPeer, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v44/methods/messages_getDocumentByHash.md b/old_docs/API_docs_v44/methods/messages_getDocumentByHash.md
index 73a235d5..06469c52 100644
--- a/old_docs/API_docs_v44/methods/messages_getDocumentByHash.md
+++ b/old_docs/API_docs_v44/methods/messages_getDocumentByHash.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Document = messages.getDocumentByHash({sha256='bytes', size=int, mime_type='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
diff --git a/old_docs/API_docs_v44/methods/messages_getFullChat.md b/old_docs/API_docs_v44/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v44/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v44/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v44/methods/messages_getHistory.md b/old_docs/API_docs_v44/methods/messages_getHistory.md
index 2fc5d597..d23331cc 100644
--- a/old_docs/API_docs_v44/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v44/methods/messages_getHistory.md
@@ -47,16 +47,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v44/methods/messages_getMessagesViews.md b/old_docs/API_docs_v44/methods/messages_getMessagesViews.md
index 3d490315..143e568c 100644
--- a/old_docs/API_docs_v44/methods/messages_getMessagesViews.md
+++ b/old_docs/API_docs_v44/methods/messages_getMessagesViews.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
Vector_of_int = messages.getMessagesViews({peer=InputPeer, id={int}, increment=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v44/methods/messages_getStickerSet.md b/old_docs/API_docs_v44/methods/messages_getStickerSet.md
index 57bce84d..487316cc 100644
--- a/old_docs/API_docs_v44/methods/messages_getStickerSet.md
+++ b/old_docs/API_docs_v44/methods/messages_getStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_StickerSet = messages.getStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v44/methods/messages_importChatInvite.md b/old_docs/API_docs_v44/methods/messages_importChatInvite.md
index 12120867..101b4b19 100644
--- a/old_docs/API_docs_v44/methods/messages_importChatInvite.md
+++ b/old_docs/API_docs_v44/methods/messages_importChatInvite.md
@@ -42,16 +42,16 @@ Or, if you're into Lua:
Updates = messages.importChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v44/methods/messages_installStickerSet.md b/old_docs/API_docs_v44/methods/messages_installStickerSet.md
index e1f691f2..3803f946 100644
--- a/old_docs/API_docs_v44/methods/messages_installStickerSet.md
+++ b/old_docs/API_docs_v44/methods/messages_installStickerSet.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.installStickerSet({stickerset=InputStickerSet, disabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v44/methods/messages_migrateChat.md b/old_docs/API_docs_v44/methods/messages_migrateChat.md
index a72f4c11..ee4010eb 100644
--- a/old_docs/API_docs_v44/methods/messages_migrateChat.md
+++ b/old_docs/API_docs_v44/methods/messages_migrateChat.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
Updates = messages.migrateChat({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v44/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v44/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v44/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v44/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v44/methods/messages_readHistory.md b/old_docs/API_docs_v44/methods/messages_readHistory.md
index 2ad5cd09..a7f0eca7 100644
--- a/old_docs/API_docs_v44/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v44/methods/messages_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.readHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v44/methods/messages_receivedQueue.md b/old_docs/API_docs_v44/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v44/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v44/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v44/methods/messages_reportSpam.md b/old_docs/API_docs_v44/methods/messages_reportSpam.md
index e92fba13..dc256e55 100644
--- a/old_docs/API_docs_v44/methods/messages_reportSpam.md
+++ b/old_docs/API_docs_v44/methods/messages_reportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v44/methods/messages_requestEncryption.md b/old_docs/API_docs_v44/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v44/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v44/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v44/methods/messages_search.md b/old_docs/API_docs_v44/methods/messages_search.md
index 32efc390..f8941cac 100644
--- a/old_docs/API_docs_v44/methods/messages_search.md
+++ b/old_docs/API_docs_v44/methods/messages_search.md
@@ -50,16 +50,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({important_only=Bool, peer=InputPeer, q='string', filter=MessagesFilter, min_date=int, max_date=int, offset=int, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v44/methods/messages_searchGifs.md b/old_docs/API_docs_v44/methods/messages_searchGifs.md
index 7be4173b..1602d35e 100644
--- a/old_docs/API_docs_v44/methods/messages_searchGifs.md
+++ b/old_docs/API_docs_v44/methods/messages_searchGifs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_FoundGifs = messages.searchGifs({q='string', offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v44/methods/messages_searchGlobal.md b/old_docs/API_docs_v44/methods/messages_searchGlobal.md
index fb38398b..c8da163c 100644
--- a/old_docs/API_docs_v44/methods/messages_searchGlobal.md
+++ b/old_docs/API_docs_v44/methods/messages_searchGlobal.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
messages_Messages = messages.searchGlobal({q='string', offset_date=int, offset_peer=InputPeer, offset_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v44/methods/messages_sendEncrypted.md b/old_docs/API_docs_v44/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v44/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v44/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v44/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v44/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v44/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v44/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v44/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v44/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v44/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v44/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v44/methods/messages_sendMedia.md b/old_docs/API_docs_v44/methods/messages_sendMedia.md
index 8413e296..1770c3ea 100644
--- a/old_docs/API_docs_v44/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v44/methods/messages_sendMedia.md
@@ -52,31 +52,31 @@ Updates = messages.sendMedia({broadcast=Bool, peer=InputPeer, reply_to_msg_id=in
You can provide bot API reply_markup objects here.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v44/methods/messages_sendMessage.md b/old_docs/API_docs_v44/methods/messages_sendMessage.md
index 4a990893..39f9df64 100644
--- a/old_docs/API_docs_v44/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v44/methods/messages_sendMessage.md
@@ -97,31 +97,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v44/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v44/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v44/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v44/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v44/methods/messages_setTyping.md b/old_docs/API_docs_v44/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v44/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v44/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v44/methods/messages_startBot.md b/old_docs/API_docs_v44/methods/messages_startBot.md
index aa2b2d00..4bf12aa6 100644
--- a/old_docs/API_docs_v44/methods/messages_startBot.md
+++ b/old_docs/API_docs_v44/methods/messages_startBot.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = messages.startBot({bot=InputUser, peer=InputPeer, start_param='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INVALID|This is not a valid bot|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|START_PARAM_EMPTY|The start parameter is empty|
-|START_PARAM_INVALID|Start parameter invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INVALID|This is not a valid bot|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|START_PARAM_EMPTY|The start parameter is empty|
+|400|START_PARAM_INVALID|Start parameter invalid|
diff --git a/old_docs/API_docs_v44/methods/messages_toggleChatAdmins.md b/old_docs/API_docs_v44/methods/messages_toggleChatAdmins.md
index 7851806d..8ea6e65e 100644
--- a/old_docs/API_docs_v44/methods/messages_toggleChatAdmins.md
+++ b/old_docs/API_docs_v44/methods/messages_toggleChatAdmins.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.toggleChatAdmins({chat_id=InputPeer, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v44/methods/messages_uninstallStickerSet.md b/old_docs/API_docs_v44/methods/messages_uninstallStickerSet.md
index 59abc510..6b7a2006 100644
--- a/old_docs/API_docs_v44/methods/messages_uninstallStickerSet.md
+++ b/old_docs/API_docs_v44/methods/messages_uninstallStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.uninstallStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v44/methods/photos_getUserPhotos.md b/old_docs/API_docs_v44/methods/photos_getUserPhotos.md
index 57f5772b..a01f3180 100644
--- a/old_docs/API_docs_v44/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v44/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v44/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v44/methods/photos_updateProfilePhoto.md
index 53d0b12f..db7fe164 100644
--- a/old_docs/API_docs_v44/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v44/methods/photos_updateProfilePhoto.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, crop=InputPhotoCrop, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v44/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v44/methods/photos_uploadProfilePhoto.md
index f140329e..10653c42 100644
--- a/old_docs/API_docs_v44/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v44/methods/photos_uploadProfilePhoto.md
@@ -45,13 +45,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, caption='string', geo_point=InputGeoPoint, crop=InputPhotoCrop, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v44/methods/updates_getChannelDifference.md b/old_docs/API_docs_v44/methods/updates_getChannelDifference.md
index 6fa79529..08d497ed 100644
--- a/old_docs/API_docs_v44/methods/updates_getChannelDifference.md
+++ b/old_docs/API_docs_v44/methods/updates_getChannelDifference.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|filter|[ChannelMessagesFilter](../types/ChannelMessagesFilter.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_ChannelDifference](../types/updates_ChannelDifference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_ChannelDifference = $MadelineProto->updates->getChannelDifference(['channel' => InputChannel, 'filter' => ChannelMessagesFilter, 'pts' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_ChannelDifference = updates.getChannelDifference({channel=InputChannel, filter=ChannelMessagesFilter, pts=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|400|RANGES_INVALID|Invalid range provided|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v44/methods/updates_getDifference.md b/old_docs/API_docs_v44/methods/updates_getDifference.md
index 33e7d7f2..57ea6d99 100644
--- a/old_docs/API_docs_v44/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v44/methods/updates_getDifference.md
@@ -7,8 +7,54 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v44/methods/updates_getState.md b/old_docs/API_docs_v44/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v44/methods/updates_getState.md
+++ b/old_docs/API_docs_v44/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v44/methods/upload_getFile.md b/old_docs/API_docs_v44/methods/upload_getFile.md
index c72e6090..d8b433d6 100644
--- a/old_docs/API_docs_v44/methods/upload_getFile.md
+++ b/old_docs/API_docs_v44/methods/upload_getFile.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v44/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v44/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v44/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v44/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v44/methods/upload_saveFilePart.md b/old_docs/API_docs_v44/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v44/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v44/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v44/methods/users_getFullUser.md b/old_docs/API_docs_v44/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v44/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v44/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v44/methods/users_getUsers.md b/old_docs/API_docs_v44/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v44/methods/users_getUsers.md
+++ b/old_docs/API_docs_v44/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v45/methods/README.md b/old_docs/API_docs_v45/methods/README.md
index 640b62c3..a161eab6 100644
--- a/old_docs/API_docs_v45/methods/README.md
+++ b/old_docs/API_docs_v45/methods/README.md
@@ -30,269 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Add a sticker set: messages.installStickerSet
-
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add phone number as contact: contacts.importContacts
-
-* Add users to channel/supergroup: channels.inviteToChannel
-
-* Block a user: contacts.block
-
-* Bots only: set the results of an inline query: messages.setInlineBotResults
-
-* Call inline bot: messages.getInlineBotResults
-
-* Change notification settings: account.updateNotifySettings
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if an invitation link is valid: messages.checkChatInvite
-
-* Check if this phone number is registered on telegram: auth.checkPhone
-
-* Check if this username is available: account.checkUsername
-
-* Check if this username is free and can be assigned to a channel/supergroup: channels.checkUsername
-
-* Convert chat to supergroup: messages.migrateChat
-
-* Create a chat (not supergroup): messages.createChat
-
-* Create channel/supergroup: channels.createChannel
-
-* Delete a certain session: account.resetAuthorization
-
-* Delete a channel/supergroup: channels.deleteChannel
-
-* Delete a contact: contacts.deleteContact
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete all messages of a user in a channel/supergroup: channels.deleteUserHistory
-
-* Delete channel/supergroup messages: channels.deleteMessages
-
-* Delete chat history: messages.deleteHistory
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete this account: account.deleteAccount
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Edit admin permissions of a user in a channel/supergroup: channels.editAdmin
-
-* Edit admin permissions: messages.editChatAdmin
-
-* Edit the about text of a channel/supergroup: channels.editAbout
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the photo of a supergroup/channel: channels.editPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Edit the title of a supergroup/channel: channels.editTitle
-
-* Enable all users are admins in normal groups (not supergroups): messages.toggleChatAdmins
-
-* Enable channel comments: channels.toggleComments
-
-* Export chat invite : messages.exportChatInvite
-
-* Export contact as card: contacts.exportCard
-
-* Export the invite link of a channel: channels.exportInvite
-
-* Forward message: messages.forwardMessage
-
-* Forward messages: messages.forwardMessages
-
-* Get a stickerset: messages.getStickerSet
-
-* Get account TTL: account.getAccountTTL
-
-* Get all contacts: contacts.getContacts
-
-* Get all logged-in authorizations: account.getAuthorizations
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get and increase message views: messages.getMessagesViews
-
-* Get blocked users: contacts.getBlocked
-
-* Get channel dialogs: channels.getDialogs
-
-* Get channel/supergroup messages: channels.getMessages
-
-* Get channel/supergroup participants (you should use `$MadelineProto->get_pwr_chat($id)` instead): channels.getParticipants
-
-* Get document by SHA256 hash: messages.getDocumentByHash
-
-* Get important channel/supergroup history: channels.getImportantHistory
-
-* Get info about a certain channel/supergroup participant: channels.getParticipant
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about multiple channels/supergroups: channels.getChannels
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get invitation text: help.getInviteText
-
-* Get messages: messages.getMessages
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get saved gifs: messages.getSavedGifs
-
-* Get server configuration: help.getConfig
-
-* Get stickers: messages.getStickers
-
-* Get suggested contacts: contacts.getSuggested
-
-* Get terms of service: help.getTermsOfService
-
-* Get the changelog of this app: help.getAppChangelog
-
-* Get the current password: account.getPassword
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Get webpage preview: messages.getWebPagePreview
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Global message search: messages.searchGlobal
-
-* Import card as contact: contacts.importCard
-
-* Import chat invite: messages.importChatInvite
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Invite friends to telegram!: auth.sendInvites
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invoke with method without returning updates in the socket: invokeWithoutUpdates
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Join a channel/supergroup: channels.joinChannel
-
-* Kick user from channel: channels.kickFromChannel
-
-* Leave a channel/supergroup: channels.leaveChannel
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark channel/supergroup history as read: channels.readHistory
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Register device for push notifications: account.registerDevice
-
-* Remove a sticker set: messages.uninstallStickerSet
-
-* Reorder sticker sets: messages.reorderStickerSets
-
-* Report a message in a supergroup/channel for spam: channels.reportSpam
-
-* Report a peer for spam: messages.reportSpam
-
-* Report for spam: account.reportPeer
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Save a GIF: messages.saveGif
-
-* Search contacts: contacts.search
-
-* Search gifs: messages.searchGifs
-
-* Search peers or messages: messages.search
-
-* Send SMS verification code: auth.sendSms
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message to all users in the chat list: messages.sendBroadcast
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send an email to recover the 2FA password: auth.requestPasswordRecovery
-
-* Send inline bot result obtained with messages.getInlineBotResults to the chat: messages.sendInlineBotResult
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Send verification phone call: auth.sendCall
-
-* Set account TTL: account.setAccountTTL
-
-* Set privacy settings: account.setPrivacy
-
-* Start a bot: messages.startBot
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update profile info: account.updateProfile
-
-* Update the username of a supergroup/channel: channels.updateUsername
-
-* Update this user's username: account.updateUsername
-
-* Upload profile photo: photos.uploadProfilePhoto
-
-* Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
-
diff --git a/old_docs/API_docs_v45/methods/account_changePhone.md b/old_docs/API_docs_v45/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/old_docs/API_docs_v45/methods/account_changePhone.md
+++ b/old_docs/API_docs_v45/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v45/methods/account_checkUsername.md b/old_docs/API_docs_v45/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v45/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v45/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v45/methods/account_getNotifySettings.md b/old_docs/API_docs_v45/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v45/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v45/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v45/methods/account_getPasswordSettings.md b/old_docs/API_docs_v45/methods/account_getPasswordSettings.md
index 8ebb78ee..8f878365 100644
--- a/old_docs/API_docs_v45/methods/account_getPasswordSettings.md
+++ b/old_docs/API_docs_v45/methods/account_getPasswordSettings.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+Get the current 2FA settings
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+### Return type: [account\_PasswordSettings](../types/account_PasswordSettings.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$account_PasswordSettings = $MadelineProto->account->getPasswordSettings(['current_password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+account_PasswordSettings = account.getPasswordSettings({current_password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v45/methods/account_getPrivacy.md b/old_docs/API_docs_v45/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/old_docs/API_docs_v45/methods/account_getPrivacy.md
+++ b/old_docs/API_docs_v45/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v45/methods/account_registerDevice.md b/old_docs/API_docs_v45/methods/account_registerDevice.md
index ab5a56a6..908977a3 100644
--- a/old_docs/API_docs_v45/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v45/methods/account_registerDevice.md
@@ -48,10 +48,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({token_type=int, token='string', device_model='string', system_version='string', app_version='string', app_sandbox=Bool, lang_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v45/methods/account_reportPeer.md b/old_docs/API_docs_v45/methods/account_reportPeer.md
index a203c900..87b080eb 100644
--- a/old_docs/API_docs_v45/methods/account_reportPeer.md
+++ b/old_docs/API_docs_v45/methods/account_reportPeer.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.reportPeer({peer=InputPeer, reason=ReportReason, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v45/methods/account_resetAuthorization.md b/old_docs/API_docs_v45/methods/account_resetAuthorization.md
index c950992c..e8e8ecc4 100644
--- a/old_docs/API_docs_v45/methods/account_resetAuthorization.md
+++ b/old_docs/API_docs_v45/methods/account_resetAuthorization.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.resetAuthorization({hash=long, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v45/methods/account_sendChangePhoneCode.md b/old_docs/API_docs_v45/methods/account_sendChangePhoneCode.md
index c4bc0675..8537d9d9 100644
--- a/old_docs/API_docs_v45/methods/account_sendChangePhoneCode.md
+++ b/old_docs/API_docs_v45/methods/account_sendChangePhoneCode.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_SentChangePhoneCode = account.sendChangePhoneCode({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v45/methods/account_setAccountTTL.md b/old_docs/API_docs_v45/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/old_docs/API_docs_v45/methods/account_setAccountTTL.md
+++ b/old_docs/API_docs_v45/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/old_docs/API_docs_v45/methods/account_setPrivacy.md b/old_docs/API_docs_v45/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/old_docs/API_docs_v45/methods/account_setPrivacy.md
+++ b/old_docs/API_docs_v45/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v45/methods/account_unregisterDevice.md b/old_docs/API_docs_v45/methods/account_unregisterDevice.md
index 589f48b0..a184da43 100644
--- a/old_docs/API_docs_v45/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v45/methods/account_unregisterDevice.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v45/methods/account_updateNotifySettings.md b/old_docs/API_docs_v45/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v45/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v45/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v45/methods/account_updatePasswordSettings.md b/old_docs/API_docs_v45/methods/account_updatePasswordSettings.md
index 80f27228..68e5da6d 100644
--- a/old_docs/API_docs_v45/methods/account_updatePasswordSettings.md
+++ b/old_docs/API_docs_v45/methods/account_updatePasswordSettings.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+|new\_settings|[account\_PasswordInputSettings](../types/account_PasswordInputSettings.md) | New 2FA settings | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->account->updatePasswordSettings(['current_password_hash' => 'bytes', 'new_settings' => account_PasswordInputSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = account.updatePasswordSettings({current_password_hash='bytes', new_settings=account_PasswordInputSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EMAIL_UNCONFIRMED|Email unconfirmed|
+|400|EMAIL_UNCONFIRMED_X|The provided email isn't confirmed, X is the length of the verification code that was just sent to the email.|
+|400|NEW_SALT_INVALID|The new salt is invalid|
+|400|NEW_SETTINGS_INVALID|The new settings are invalid|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v45/methods/account_updateProfile.md b/old_docs/API_docs_v45/methods/account_updateProfile.md
index 486f63bc..33423686 100644
--- a/old_docs/API_docs_v45/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v45/methods/account_updateProfile.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v45/methods/account_updateStatus.md b/old_docs/API_docs_v45/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v45/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v45/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v45/methods/account_updateUsername.md b/old_docs/API_docs_v45/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v45/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v45/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v45/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v45/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v45/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v45/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v45/methods/auth_checkPassword.md b/old_docs/API_docs_v45/methods/auth_checkPassword.md
index 8d76c483..db65cb56 100644
--- a/old_docs/API_docs_v45/methods/auth_checkPassword.md
+++ b/old_docs/API_docs_v45/methods/auth_checkPassword.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->checkPassword(['password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.checkPassword({password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v45/methods/auth_checkPhone.md b/old_docs/API_docs_v45/methods/auth_checkPhone.md
index f3e32365..e974ce7f 100644
--- a/old_docs/API_docs_v45/methods/auth_checkPhone.md
+++ b/old_docs/API_docs_v45/methods/auth_checkPhone.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
auth_CheckedPhone = auth.checkPhone({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v45/methods/auth_exportAuthorization.md b/old_docs/API_docs_v45/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v45/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v45/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v45/methods/auth_importAuthorization.md b/old_docs/API_docs_v45/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v45/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v45/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v45/methods/auth_importBotAuthorization.md b/old_docs/API_docs_v45/methods/auth_importBotAuthorization.md
index 1a98c1b9..98a2f8ca 100644
--- a/old_docs/API_docs_v45/methods/auth_importBotAuthorization.md
+++ b/old_docs/API_docs_v45/methods/auth_importBotAuthorization.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|api\_id|[int](../types/int.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_hash|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|bot\_auth\_token|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importBotAuthorization(['api_id' => int, 'api_hash' => 'string', 'bot_auth_token' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importBotAuthorization({api_id=int, api_hash='string', bot_auth_token='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ACCESS_TOKEN_EXPIRED|Access token expired|
+|400|ACCESS_TOKEN_INVALID|Access token invalid|
+|400|API_ID_INVALID|API ID invalid|
diff --git a/old_docs/API_docs_v45/methods/auth_logOut.md b/old_docs/API_docs_v45/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v45/methods/auth_logOut.md
+++ b/old_docs/API_docs_v45/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v45/methods/auth_recoverPassword.md b/old_docs/API_docs_v45/methods/auth_recoverPassword.md
index 83ff5aed..d4bad9c5 100644
--- a/old_docs/API_docs_v45/methods/auth_recoverPassword.md
+++ b/old_docs/API_docs_v45/methods/auth_recoverPassword.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
auth_Authorization = auth.recoverPassword({code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_EMPTY|The provided code is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_EMPTY|The provided code is empty|
diff --git a/old_docs/API_docs_v45/methods/auth_requestPasswordRecovery.md b/old_docs/API_docs_v45/methods/auth_requestPasswordRecovery.md
index 1864bbb0..b6ad57ba 100644
--- a/old_docs/API_docs_v45/methods/auth_requestPasswordRecovery.md
+++ b/old_docs/API_docs_v45/methods/auth_requestPasswordRecovery.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
auth_PasswordRecovery = auth.requestPasswordRecovery({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_EMPTY|The provided password is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_EMPTY|The provided password is empty|
diff --git a/old_docs/API_docs_v45/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v45/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v45/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v45/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v45/methods/auth_sendCode.md b/old_docs/API_docs_v45/methods/auth_sendCode.md
index 9afebb55..4e856d6a 100644
--- a/old_docs/API_docs_v45/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v45/methods/auth_sendCode.md
@@ -7,8 +7,59 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|sms\_type|[int](../types/int.md) | You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+|lang\_code|[string](../types/string.md) | You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['phone_number' => 'string', 'sms_type' => int, 'api_id' => int, 'api_hash' => 'string', 'lang_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({phone_number='string', sms_type=int, api_id=int, api_hash='string', lang_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v45/methods/auth_sendInvites.md b/old_docs/API_docs_v45/methods/auth_sendInvites.md
index e10c1109..4c11023e 100644
--- a/old_docs/API_docs_v45/methods/auth_sendInvites.md
+++ b/old_docs/API_docs_v45/methods/auth_sendInvites.md
@@ -49,10 +49,10 @@ Bool = auth.sendInvites({phone_numbers={'string'}, message='string', })
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_EMPTY|The provided message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_EMPTY|The provided message is empty|
diff --git a/old_docs/API_docs_v45/methods/auth_signIn.md b/old_docs/API_docs_v45/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v45/methods/auth_signIn.md
+++ b/old_docs/API_docs_v45/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v45/methods/auth_signUp.md b/old_docs/API_docs_v45/methods/auth_signUp.md
index 15960145..31154486 100644
--- a/old_docs/API_docs_v45/methods/auth_signUp.md
+++ b/old_docs/API_docs_v45/methods/auth_signUp.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', phone_code='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v45/methods/channels_checkUsername.md b/old_docs/API_docs_v45/methods/channels_checkUsername.md
index 483a2f6f..52365d34 100644
--- a/old_docs/API_docs_v45/methods/channels_checkUsername.md
+++ b/old_docs/API_docs_v45/methods/channels_checkUsername.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Bool = channels.checkUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v45/methods/channels_createChannel.md b/old_docs/API_docs_v45/methods/channels_createChannel.md
index b924e6a6..ecaee0ef 100644
--- a/old_docs/API_docs_v45/methods/channels_createChannel.md
+++ b/old_docs/API_docs_v45/methods/channels_createChannel.md
@@ -45,12 +45,12 @@ Or, if you're into Lua:
Updates = channels.createChannel({broadcast=Bool, megagroup=Bool, title='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_TITLE_EMPTY|No chat title provided|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
+|406|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v45/methods/channels_deleteChannel.md b/old_docs/API_docs_v45/methods/channels_deleteChannel.md
index 53a9c23d..1b8d2d48 100644
--- a/old_docs/API_docs_v45/methods/channels_deleteChannel.md
+++ b/old_docs/API_docs_v45/methods/channels_deleteChannel.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Updates = channels.deleteChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v45/methods/channels_deleteMessages.md b/old_docs/API_docs_v45/methods/channels_deleteMessages.md
index f76a9ad1..463ebad0 100644
--- a/old_docs/API_docs_v45/methods/channels_deleteMessages.md
+++ b/old_docs/API_docs_v45/methods/channels_deleteMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_AffectedMessages = channels.deleteMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v45/methods/channels_deleteUserHistory.md b/old_docs/API_docs_v45/methods/channels_deleteUserHistory.md
index 0a4e7d82..33905a7e 100644
--- a/old_docs/API_docs_v45/methods/channels_deleteUserHistory.md
+++ b/old_docs/API_docs_v45/methods/channels_deleteUserHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedHistory = channels.deleteUserHistory({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v45/methods/channels_editAbout.md b/old_docs/API_docs_v45/methods/channels_editAbout.md
index 47111668..d5e090e0 100644
--- a/old_docs/API_docs_v45/methods/channels_editAbout.md
+++ b/old_docs/API_docs_v45/methods/channels_editAbout.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Bool = channels.editAbout({channel=InputChannel, about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
-|CHAT_ABOUT_TOO_LONG|Chat about too long|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
+|400|CHAT_ABOUT_TOO_LONG|Chat about too long|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v45/methods/channels_editAdmin.md b/old_docs/API_docs_v45/methods/channels_editAdmin.md
index 3fbaf64d..229318fb 100644
--- a/old_docs/API_docs_v45/methods/channels_editAdmin.md
+++ b/old_docs/API_docs_v45/methods/channels_editAdmin.md
@@ -44,19 +44,19 @@ Or, if you're into Lua:
Updates = channels.editAdmin({channel=InputChannel, user_id=InputUser, role=ChannelParticipantRole, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ADMINS_TOO_MUCH|There are too many admins|
-|BOT_CHANNELS_NA|Bots can't edit admin privileges|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
-|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ADMINS_TOO_MUCH|There are too many admins|
+|400|BOT_CHANNELS_NA|Bots can't edit admin privileges|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
+|403|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v45/methods/channels_editPhoto.md b/old_docs/API_docs_v45/methods/channels_editPhoto.md
index bec0ba48..caef32d5 100644
--- a/old_docs/API_docs_v45/methods/channels_editPhoto.md
+++ b/old_docs/API_docs_v45/methods/channels_editPhoto.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editPhoto({channel=InputChannel, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|PHOTO_INVALID|Photo invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|PHOTO_INVALID|Photo invalid|
diff --git a/old_docs/API_docs_v45/methods/channels_editTitle.md b/old_docs/API_docs_v45/methods/channels_editTitle.md
index b5efeb39..d7cb33da 100644
--- a/old_docs/API_docs_v45/methods/channels_editTitle.md
+++ b/old_docs/API_docs_v45/methods/channels_editTitle.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editTitle({channel=InputChannel, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v45/methods/channels_exportInvite.md b/old_docs/API_docs_v45/methods/channels_exportInvite.md
index 0918b3e7..9d578deb 100644
--- a/old_docs/API_docs_v45/methods/channels_exportInvite.md
+++ b/old_docs/API_docs_v45/methods/channels_exportInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ExportedChatInvite = channels.exportInvite({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INVITE_HASH_EXPIRED|The invite link has expired|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
diff --git a/old_docs/API_docs_v45/methods/channels_getChannels.md b/old_docs/API_docs_v45/methods/channels_getChannels.md
index 78d50641..95d7a188 100644
--- a/old_docs/API_docs_v45/methods/channels_getChannels.md
+++ b/old_docs/API_docs_v45/methods/channels_getChannels.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = channels.getChannels({id={InputChannel}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v45/methods/channels_getFullChannel.md b/old_docs/API_docs_v45/methods/channels_getFullChannel.md
index 45a8ec72..ebd53de4 100644
--- a/old_docs/API_docs_v45/methods/channels_getFullChannel.md
+++ b/old_docs/API_docs_v45/methods/channels_getFullChannel.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->channels->getFullChannel(['channel' => InputChannel, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = channels.getFullChannel({channel=InputChannel, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v45/methods/channels_getMessages.md b/old_docs/API_docs_v45/methods/channels_getMessages.md
index aa85d640..57bcc60f 100644
--- a/old_docs/API_docs_v45/methods/channels_getMessages.md
+++ b/old_docs/API_docs_v45/methods/channels_getMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_Messages = channels.getMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
diff --git a/old_docs/API_docs_v45/methods/channels_getParticipant.md b/old_docs/API_docs_v45/methods/channels_getParticipant.md
index 6633114f..808156fd 100644
--- a/old_docs/API_docs_v45/methods/channels_getParticipant.md
+++ b/old_docs/API_docs_v45/methods/channels_getParticipant.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
channels_ChannelParticipant = channels.getParticipant({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v45/methods/channels_getParticipants.md b/old_docs/API_docs_v45/methods/channels_getParticipants.md
index d4bd8779..21d4a418 100644
--- a/old_docs/API_docs_v45/methods/channels_getParticipants.md
+++ b/old_docs/API_docs_v45/methods/channels_getParticipants.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, filter=ChannelParticipantsFilter, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v45/methods/channels_inviteToChannel.md b/old_docs/API_docs_v45/methods/channels_inviteToChannel.md
index f7093f13..d8c5e88a 100644
--- a/old_docs/API_docs_v45/methods/channels_inviteToChannel.md
+++ b/old_docs/API_docs_v45/methods/channels_inviteToChannel.md
@@ -43,25 +43,25 @@ Or, if you're into Lua:
Updates = channels.inviteToChannel({channel=InputChannel, users={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
-|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_BLOCKED|User blocked|
-|USER_BOT|Bots can only be admins in channels.|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_KICKED|This user was kicked from this supergroup/channel|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
+|400|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_BLOCKED|User blocked|
+|400|USER_BOT|Bots can only be admins in channels.|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_KICKED|This user was kicked from this supergroup/channel|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v45/methods/channels_joinChannel.md b/old_docs/API_docs_v45/methods/channels_joinChannel.md
index b056031a..a4a7c177 100644
--- a/old_docs/API_docs_v45/methods/channels_joinChannel.md
+++ b/old_docs/API_docs_v45/methods/channels_joinChannel.md
@@ -42,15 +42,15 @@ Or, if you're into Lua:
Updates = channels.joinChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
diff --git a/old_docs/API_docs_v45/methods/channels_leaveChannel.md b/old_docs/API_docs_v45/methods/channels_leaveChannel.md
index fdea13ba..6538d443 100644
--- a/old_docs/API_docs_v45/methods/channels_leaveChannel.md
+++ b/old_docs/API_docs_v45/methods/channels_leaveChannel.md
@@ -42,14 +42,14 @@ Or, if you're into Lua:
Updates = channels.leaveChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
-|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
diff --git a/old_docs/API_docs_v45/methods/channels_readHistory.md b/old_docs/API_docs_v45/methods/channels_readHistory.md
index 93dc075f..3532dae0 100644
--- a/old_docs/API_docs_v45/methods/channels_readHistory.md
+++ b/old_docs/API_docs_v45/methods/channels_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readHistory({channel=InputChannel, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v45/methods/channels_reportSpam.md b/old_docs/API_docs_v45/methods/channels_reportSpam.md
index db80676a..7e273cc5 100644
--- a/old_docs/API_docs_v45/methods/channels_reportSpam.md
+++ b/old_docs/API_docs_v45/methods/channels_reportSpam.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
Bool = channels.reportSpam({channel=InputChannel, user_id=InputUser, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
diff --git a/old_docs/API_docs_v45/methods/channels_updateUsername.md b/old_docs/API_docs_v45/methods/channels_updateUsername.md
index 677712f9..48d250e6 100644
--- a/old_docs/API_docs_v45/methods/channels_updateUsername.md
+++ b/old_docs/API_docs_v45/methods/channels_updateUsername.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Bool = channels.updateUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_OCCUPIED|The provided username is already occupied|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
diff --git a/old_docs/API_docs_v45/methods/contacts_block.md b/old_docs/API_docs_v45/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v45/methods/contacts_block.md
+++ b/old_docs/API_docs_v45/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v45/methods/contacts_deleteContact.md b/old_docs/API_docs_v45/methods/contacts_deleteContact.md
index ba9569e4..a9321d64 100644
--- a/old_docs/API_docs_v45/methods/contacts_deleteContact.md
+++ b/old_docs/API_docs_v45/methods/contacts_deleteContact.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
contacts_Link = contacts.deleteContact({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v45/methods/contacts_deleteContacts.md b/old_docs/API_docs_v45/methods/contacts_deleteContacts.md
index bfc91fdd..3c8e90f0 100644
--- a/old_docs/API_docs_v45/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v45/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v45/methods/contacts_getStatuses.md b/old_docs/API_docs_v45/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v45/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v45/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v45/methods/contacts_importCard.md b/old_docs/API_docs_v45/methods/contacts_importCard.md
index 15addde1..ed3d17fe 100644
--- a/old_docs/API_docs_v45/methods/contacts_importCard.md
+++ b/old_docs/API_docs_v45/methods/contacts_importCard.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
User = contacts.importCard({export_card={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|EXPORT_CARD_INVALID|Provided card is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EXPORT_CARD_INVALID|Provided card is invalid|
diff --git a/old_docs/API_docs_v45/methods/contacts_resolveUsername.md b/old_docs/API_docs_v45/methods/contacts_resolveUsername.md
index fab56bb1..68f709db 100644
--- a/old_docs/API_docs_v45/methods/contacts_resolveUsername.md
+++ b/old_docs/API_docs_v45/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [contacts\_ResolvedPeer](../types/contacts_ResolvedPeer.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$contacts_ResolvedPeer = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+contacts_ResolvedPeer = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v45/methods/contacts_search.md b/old_docs/API_docs_v45/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v45/methods/contacts_search.md
+++ b/old_docs/API_docs_v45/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v45/methods/contacts_unblock.md b/old_docs/API_docs_v45/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v45/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v45/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v45/methods/help_getConfig.md b/old_docs/API_docs_v45/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v45/methods/help_getConfig.md
+++ b/old_docs/API_docs_v45/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v45/methods/initConnection.md b/old_docs/API_docs_v45/methods/initConnection.md
index 659f4e6b..a41f0c4d 100644
--- a/old_docs/API_docs_v45/methods/initConnection.md
+++ b/old_docs/API_docs_v45/methods/initConnection.md
@@ -47,11 +47,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', lang_code='string', query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v45/methods/invokeWithLayer.md b/old_docs/API_docs_v45/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/old_docs/API_docs_v45/methods/invokeWithLayer.md
+++ b/old_docs/API_docs_v45/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v45/methods/messages_acceptEncryption.md b/old_docs/API_docs_v45/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v45/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v45/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v45/methods/messages_addChatUser.md b/old_docs/API_docs_v45/methods/messages_addChatUser.md
index bc0d6253..b5e164b2 100644
--- a/old_docs/API_docs_v45/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v45/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
Updates = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v45/methods/messages_checkChatInvite.md b/old_docs/API_docs_v45/methods/messages_checkChatInvite.md
index de28b09b..0d13d55e 100644
--- a/old_docs/API_docs_v45/methods/messages_checkChatInvite.md
+++ b/old_docs/API_docs_v45/methods/messages_checkChatInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ChatInvite = messages.checkChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
diff --git a/old_docs/API_docs_v45/methods/messages_createChat.md b/old_docs/API_docs_v45/methods/messages_createChat.md
index 8f6e9672..b2623f1d 100644
--- a/old_docs/API_docs_v45/methods/messages_createChat.md
+++ b/old_docs/API_docs_v45/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v45/methods/messages_deleteChatUser.md b/old_docs/API_docs_v45/methods/messages_deleteChatUser.md
index 63529571..11b9b220 100644
--- a/old_docs/API_docs_v45/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v45/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v45/methods/messages_deleteHistory.md b/old_docs/API_docs_v45/methods/messages_deleteHistory.md
index a906587c..be19b57b 100644
--- a/old_docs/API_docs_v45/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v45/methods/messages_deleteHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v45/methods/messages_deleteMessages.md b/old_docs/API_docs_v45/methods/messages_deleteMessages.md
index 6df3ffec..a0d79592 100644
--- a/old_docs/API_docs_v45/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v45/methods/messages_deleteMessages.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.deleteMessages({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v45/methods/messages_discardEncryption.md b/old_docs/API_docs_v45/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v45/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v45/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v45/methods/messages_editChatAdmin.md b/old_docs/API_docs_v45/methods/messages_editChatAdmin.md
index 2b4dc94c..6f6c1376 100644
--- a/old_docs/API_docs_v45/methods/messages_editChatAdmin.md
+++ b/old_docs/API_docs_v45/methods/messages_editChatAdmin.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.editChatAdmin({chat_id=InputPeer, user_id=InputUser, is_admin=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v45/methods/messages_editChatPhoto.md b/old_docs/API_docs_v45/methods/messages_editChatPhoto.md
index 2a82c232..a21a03b9 100644
--- a/old_docs/API_docs_v45/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v45/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Updates = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v45/methods/messages_editChatTitle.md b/old_docs/API_docs_v45/methods/messages_editChatTitle.md
index 2c338ad6..72f78741 100644
--- a/old_docs/API_docs_v45/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v45/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v45/methods/messages_exportChatInvite.md b/old_docs/API_docs_v45/methods/messages_exportChatInvite.md
index f3449e79..bc6272e4 100644
--- a/old_docs/API_docs_v45/methods/messages_exportChatInvite.md
+++ b/old_docs/API_docs_v45/methods/messages_exportChatInvite.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
ExportedChatInvite = messages.exportChatInvite({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v45/methods/messages_forwardMessage.md b/old_docs/API_docs_v45/methods/messages_forwardMessage.md
index c8e0b18d..95f6d2f3 100644
--- a/old_docs/API_docs_v45/methods/messages_forwardMessage.md
+++ b/old_docs/API_docs_v45/methods/messages_forwardMessage.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Updates = messages.forwardMessage({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|YOU_BLOCKED_USER|You blocked this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|YOU_BLOCKED_USER|You blocked this user|
diff --git a/old_docs/API_docs_v45/methods/messages_forwardMessages.md b/old_docs/API_docs_v45/methods/messages_forwardMessages.md
index baa3d481..ce66ff7b 100644
--- a/old_docs/API_docs_v45/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v45/methods/messages_forwardMessages.md
@@ -45,29 +45,29 @@ Or, if you're into Lua:
Updates = messages.forwardMessages({broadcast=Bool, from_peer=InputPeer, id={int}, to_peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v45/methods/messages_getChats.md b/old_docs/API_docs_v45/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/old_docs/API_docs_v45/methods/messages_getChats.md
+++ b/old_docs/API_docs_v45/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v45/methods/messages_getDhConfig.md b/old_docs/API_docs_v45/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v45/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v45/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v45/methods/messages_getDialogs.md b/old_docs/API_docs_v45/methods/messages_getDialogs.md
index 024b0068..8d8522d5 100644
--- a/old_docs/API_docs_v45/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v45/methods/messages_getDialogs.md
@@ -45,13 +45,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({offset_date=int, offset_id=int, offset_peer=InputPeer, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v45/methods/messages_getDocumentByHash.md b/old_docs/API_docs_v45/methods/messages_getDocumentByHash.md
index 73a235d5..06469c52 100644
--- a/old_docs/API_docs_v45/methods/messages_getDocumentByHash.md
+++ b/old_docs/API_docs_v45/methods/messages_getDocumentByHash.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Document = messages.getDocumentByHash({sha256='bytes', size=int, mime_type='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
diff --git a/old_docs/API_docs_v45/methods/messages_getFullChat.md b/old_docs/API_docs_v45/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v45/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v45/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v45/methods/messages_getHistory.md b/old_docs/API_docs_v45/methods/messages_getHistory.md
index 2fc5d597..d23331cc 100644
--- a/old_docs/API_docs_v45/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v45/methods/messages_getHistory.md
@@ -47,16 +47,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v45/methods/messages_getInlineBotResults.md b/old_docs/API_docs_v45/methods/messages_getInlineBotResults.md
index cba87b19..bdde739f 100644
--- a/old_docs/API_docs_v45/methods/messages_getInlineBotResults.md
+++ b/old_docs/API_docs_v45/methods/messages_getInlineBotResults.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
messages_BotResults = messages.getInlineBotResults({bot=InputUser, query='string', offset='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
-|BOT_INVALID|This is not a valid bot|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
+|400|BOT_INVALID|This is not a valid bot|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v45/methods/messages_getMessagesViews.md b/old_docs/API_docs_v45/methods/messages_getMessagesViews.md
index 3d490315..143e568c 100644
--- a/old_docs/API_docs_v45/methods/messages_getMessagesViews.md
+++ b/old_docs/API_docs_v45/methods/messages_getMessagesViews.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
Vector_of_int = messages.getMessagesViews({peer=InputPeer, id={int}, increment=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v45/methods/messages_getStickerSet.md b/old_docs/API_docs_v45/methods/messages_getStickerSet.md
index 57bce84d..487316cc 100644
--- a/old_docs/API_docs_v45/methods/messages_getStickerSet.md
+++ b/old_docs/API_docs_v45/methods/messages_getStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_StickerSet = messages.getStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v45/methods/messages_importChatInvite.md b/old_docs/API_docs_v45/methods/messages_importChatInvite.md
index 12120867..101b4b19 100644
--- a/old_docs/API_docs_v45/methods/messages_importChatInvite.md
+++ b/old_docs/API_docs_v45/methods/messages_importChatInvite.md
@@ -42,16 +42,16 @@ Or, if you're into Lua:
Updates = messages.importChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v45/methods/messages_installStickerSet.md b/old_docs/API_docs_v45/methods/messages_installStickerSet.md
index e1f691f2..3803f946 100644
--- a/old_docs/API_docs_v45/methods/messages_installStickerSet.md
+++ b/old_docs/API_docs_v45/methods/messages_installStickerSet.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.installStickerSet({stickerset=InputStickerSet, disabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v45/methods/messages_migrateChat.md b/old_docs/API_docs_v45/methods/messages_migrateChat.md
index a72f4c11..ee4010eb 100644
--- a/old_docs/API_docs_v45/methods/messages_migrateChat.md
+++ b/old_docs/API_docs_v45/methods/messages_migrateChat.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
Updates = messages.migrateChat({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v45/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v45/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v45/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v45/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v45/methods/messages_readHistory.md b/old_docs/API_docs_v45/methods/messages_readHistory.md
index 2ad5cd09..a7f0eca7 100644
--- a/old_docs/API_docs_v45/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v45/methods/messages_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.readHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v45/methods/messages_receivedQueue.md b/old_docs/API_docs_v45/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v45/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v45/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v45/methods/messages_reportSpam.md b/old_docs/API_docs_v45/methods/messages_reportSpam.md
index e92fba13..dc256e55 100644
--- a/old_docs/API_docs_v45/methods/messages_reportSpam.md
+++ b/old_docs/API_docs_v45/methods/messages_reportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v45/methods/messages_requestEncryption.md b/old_docs/API_docs_v45/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v45/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v45/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v45/methods/messages_saveGif.md b/old_docs/API_docs_v45/methods/messages_saveGif.md
index f504ff9e..010e17ec 100644
--- a/old_docs/API_docs_v45/methods/messages_saveGif.md
+++ b/old_docs/API_docs_v45/methods/messages_saveGif.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.saveGif({id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|GIF_ID_INVALID|The provided GIF ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|GIF_ID_INVALID|The provided GIF ID is invalid|
diff --git a/old_docs/API_docs_v45/methods/messages_search.md b/old_docs/API_docs_v45/methods/messages_search.md
index 32efc390..f8941cac 100644
--- a/old_docs/API_docs_v45/methods/messages_search.md
+++ b/old_docs/API_docs_v45/methods/messages_search.md
@@ -50,16 +50,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({important_only=Bool, peer=InputPeer, q='string', filter=MessagesFilter, min_date=int, max_date=int, offset=int, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v45/methods/messages_searchGifs.md b/old_docs/API_docs_v45/methods/messages_searchGifs.md
index 7be4173b..1602d35e 100644
--- a/old_docs/API_docs_v45/methods/messages_searchGifs.md
+++ b/old_docs/API_docs_v45/methods/messages_searchGifs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_FoundGifs = messages.searchGifs({q='string', offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v45/methods/messages_searchGlobal.md b/old_docs/API_docs_v45/methods/messages_searchGlobal.md
index fb38398b..c8da163c 100644
--- a/old_docs/API_docs_v45/methods/messages_searchGlobal.md
+++ b/old_docs/API_docs_v45/methods/messages_searchGlobal.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
messages_Messages = messages.searchGlobal({q='string', offset_date=int, offset_peer=InputPeer, offset_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v45/methods/messages_sendEncrypted.md b/old_docs/API_docs_v45/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v45/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v45/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v45/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v45/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v45/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v45/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v45/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v45/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v45/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v45/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v45/methods/messages_sendInlineBotResult.md b/old_docs/API_docs_v45/methods/messages_sendInlineBotResult.md
index bb1ce258..e2f8ceb6 100644
--- a/old_docs/API_docs_v45/methods/messages_sendInlineBotResult.md
+++ b/old_docs/API_docs_v45/methods/messages_sendInlineBotResult.md
@@ -46,15 +46,15 @@ Or, if you're into Lua:
Updates = messages.sendInlineBotResult({broadcast=Bool, peer=InputPeer, reply_to_msg_id=int, query_id=long, id='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INLINE_RESULT_EXPIRED|The inline query expired|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|QUERY_ID_EMPTY|The query ID is empty|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INLINE_RESULT_EXPIRED|The inline query expired|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|QUERY_ID_EMPTY|The query ID is empty|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v45/methods/messages_sendMedia.md b/old_docs/API_docs_v45/methods/messages_sendMedia.md
index 8413e296..1770c3ea 100644
--- a/old_docs/API_docs_v45/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v45/methods/messages_sendMedia.md
@@ -52,31 +52,31 @@ Updates = messages.sendMedia({broadcast=Bool, peer=InputPeer, reply_to_msg_id=in
You can provide bot API reply_markup objects here.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v45/methods/messages_sendMessage.md b/old_docs/API_docs_v45/methods/messages_sendMessage.md
index 4a990893..39f9df64 100644
--- a/old_docs/API_docs_v45/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v45/methods/messages_sendMessage.md
@@ -97,31 +97,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v45/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v45/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v45/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v45/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v45/methods/messages_setInlineBotResults.md b/old_docs/API_docs_v45/methods/messages_setInlineBotResults.md
index 6c3422e6..8dcb6059 100644
--- a/old_docs/API_docs_v45/methods/messages_setInlineBotResults.md
+++ b/old_docs/API_docs_v45/methods/messages_setInlineBotResults.md
@@ -47,23 +47,23 @@ Or, if you're into Lua:
Bool = messages.setInlineBotResults({gallery=Bool, private=Bool, query_id=long, results={InputBotInlineResult}, cache_time=int, next_offset='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ARTICLE_TITLE_EMPTY|The title of the article is empty|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|PHOTO_INVALID|Photo invalid|
-|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
-|QUERY_ID_INVALID|The query ID is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|RESULT_TYPE_INVALID|Result type invalid|
-|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
-|START_PARAM_INVALID|Start parameter invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ARTICLE_TITLE_EMPTY|The title of the article is empty|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|PHOTO_INVALID|Photo invalid|
+|400|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|RESULT_TYPE_INVALID|Result type invalid|
+|400|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
+|400|START_PARAM_INVALID|Start parameter invalid|
+|403|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v45/methods/messages_setTyping.md b/old_docs/API_docs_v45/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v45/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v45/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v45/methods/messages_startBot.md b/old_docs/API_docs_v45/methods/messages_startBot.md
index aa2b2d00..4bf12aa6 100644
--- a/old_docs/API_docs_v45/methods/messages_startBot.md
+++ b/old_docs/API_docs_v45/methods/messages_startBot.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = messages.startBot({bot=InputUser, peer=InputPeer, start_param='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INVALID|This is not a valid bot|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|START_PARAM_EMPTY|The start parameter is empty|
-|START_PARAM_INVALID|Start parameter invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INVALID|This is not a valid bot|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|START_PARAM_EMPTY|The start parameter is empty|
+|400|START_PARAM_INVALID|Start parameter invalid|
diff --git a/old_docs/API_docs_v45/methods/messages_toggleChatAdmins.md b/old_docs/API_docs_v45/methods/messages_toggleChatAdmins.md
index 7851806d..8ea6e65e 100644
--- a/old_docs/API_docs_v45/methods/messages_toggleChatAdmins.md
+++ b/old_docs/API_docs_v45/methods/messages_toggleChatAdmins.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.toggleChatAdmins({chat_id=InputPeer, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v45/methods/messages_uninstallStickerSet.md b/old_docs/API_docs_v45/methods/messages_uninstallStickerSet.md
index 59abc510..6b7a2006 100644
--- a/old_docs/API_docs_v45/methods/messages_uninstallStickerSet.md
+++ b/old_docs/API_docs_v45/methods/messages_uninstallStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.uninstallStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v45/methods/photos_getUserPhotos.md b/old_docs/API_docs_v45/methods/photos_getUserPhotos.md
index 57f5772b..a01f3180 100644
--- a/old_docs/API_docs_v45/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v45/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v45/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v45/methods/photos_updateProfilePhoto.md
index 53d0b12f..db7fe164 100644
--- a/old_docs/API_docs_v45/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v45/methods/photos_updateProfilePhoto.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, crop=InputPhotoCrop, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v45/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v45/methods/photos_uploadProfilePhoto.md
index f140329e..10653c42 100644
--- a/old_docs/API_docs_v45/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v45/methods/photos_uploadProfilePhoto.md
@@ -45,13 +45,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, caption='string', geo_point=InputGeoPoint, crop=InputPhotoCrop, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v45/methods/updates_getChannelDifference.md b/old_docs/API_docs_v45/methods/updates_getChannelDifference.md
index 6fa79529..08d497ed 100644
--- a/old_docs/API_docs_v45/methods/updates_getChannelDifference.md
+++ b/old_docs/API_docs_v45/methods/updates_getChannelDifference.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|filter|[ChannelMessagesFilter](../types/ChannelMessagesFilter.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_ChannelDifference](../types/updates_ChannelDifference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_ChannelDifference = $MadelineProto->updates->getChannelDifference(['channel' => InputChannel, 'filter' => ChannelMessagesFilter, 'pts' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_ChannelDifference = updates.getChannelDifference({channel=InputChannel, filter=ChannelMessagesFilter, pts=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|400|RANGES_INVALID|Invalid range provided|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v45/methods/updates_getDifference.md b/old_docs/API_docs_v45/methods/updates_getDifference.md
index 33e7d7f2..57ea6d99 100644
--- a/old_docs/API_docs_v45/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v45/methods/updates_getDifference.md
@@ -7,8 +7,54 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v45/methods/updates_getState.md b/old_docs/API_docs_v45/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v45/methods/updates_getState.md
+++ b/old_docs/API_docs_v45/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v45/methods/upload_getFile.md b/old_docs/API_docs_v45/methods/upload_getFile.md
index c72e6090..d8b433d6 100644
--- a/old_docs/API_docs_v45/methods/upload_getFile.md
+++ b/old_docs/API_docs_v45/methods/upload_getFile.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v45/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v45/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v45/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v45/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v45/methods/upload_saveFilePart.md b/old_docs/API_docs_v45/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v45/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v45/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v45/methods/users_getFullUser.md b/old_docs/API_docs_v45/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v45/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v45/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v45/methods/users_getUsers.md b/old_docs/API_docs_v45/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v45/methods/users_getUsers.md
+++ b/old_docs/API_docs_v45/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v46/methods/README.md b/old_docs/API_docs_v46/methods/README.md
index 640b62c3..a161eab6 100644
--- a/old_docs/API_docs_v46/methods/README.md
+++ b/old_docs/API_docs_v46/methods/README.md
@@ -30,269 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Add a sticker set: messages.installStickerSet
-
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add phone number as contact: contacts.importContacts
-
-* Add users to channel/supergroup: channels.inviteToChannel
-
-* Block a user: contacts.block
-
-* Bots only: set the results of an inline query: messages.setInlineBotResults
-
-* Call inline bot: messages.getInlineBotResults
-
-* Change notification settings: account.updateNotifySettings
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if an invitation link is valid: messages.checkChatInvite
-
-* Check if this phone number is registered on telegram: auth.checkPhone
-
-* Check if this username is available: account.checkUsername
-
-* Check if this username is free and can be assigned to a channel/supergroup: channels.checkUsername
-
-* Convert chat to supergroup: messages.migrateChat
-
-* Create a chat (not supergroup): messages.createChat
-
-* Create channel/supergroup: channels.createChannel
-
-* Delete a certain session: account.resetAuthorization
-
-* Delete a channel/supergroup: channels.deleteChannel
-
-* Delete a contact: contacts.deleteContact
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete all messages of a user in a channel/supergroup: channels.deleteUserHistory
-
-* Delete channel/supergroup messages: channels.deleteMessages
-
-* Delete chat history: messages.deleteHistory
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete this account: account.deleteAccount
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Edit admin permissions of a user in a channel/supergroup: channels.editAdmin
-
-* Edit admin permissions: messages.editChatAdmin
-
-* Edit the about text of a channel/supergroup: channels.editAbout
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the photo of a supergroup/channel: channels.editPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Edit the title of a supergroup/channel: channels.editTitle
-
-* Enable all users are admins in normal groups (not supergroups): messages.toggleChatAdmins
-
-* Enable channel comments: channels.toggleComments
-
-* Export chat invite : messages.exportChatInvite
-
-* Export contact as card: contacts.exportCard
-
-* Export the invite link of a channel: channels.exportInvite
-
-* Forward message: messages.forwardMessage
-
-* Forward messages: messages.forwardMessages
-
-* Get a stickerset: messages.getStickerSet
-
-* Get account TTL: account.getAccountTTL
-
-* Get all contacts: contacts.getContacts
-
-* Get all logged-in authorizations: account.getAuthorizations
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get and increase message views: messages.getMessagesViews
-
-* Get blocked users: contacts.getBlocked
-
-* Get channel dialogs: channels.getDialogs
-
-* Get channel/supergroup messages: channels.getMessages
-
-* Get channel/supergroup participants (you should use `$MadelineProto->get_pwr_chat($id)` instead): channels.getParticipants
-
-* Get document by SHA256 hash: messages.getDocumentByHash
-
-* Get important channel/supergroup history: channels.getImportantHistory
-
-* Get info about a certain channel/supergroup participant: channels.getParticipant
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about multiple channels/supergroups: channels.getChannels
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get invitation text: help.getInviteText
-
-* Get messages: messages.getMessages
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get saved gifs: messages.getSavedGifs
-
-* Get server configuration: help.getConfig
-
-* Get stickers: messages.getStickers
-
-* Get suggested contacts: contacts.getSuggested
-
-* Get terms of service: help.getTermsOfService
-
-* Get the changelog of this app: help.getAppChangelog
-
-* Get the current password: account.getPassword
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Get webpage preview: messages.getWebPagePreview
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Global message search: messages.searchGlobal
-
-* Import card as contact: contacts.importCard
-
-* Import chat invite: messages.importChatInvite
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Invite friends to telegram!: auth.sendInvites
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invoke with method without returning updates in the socket: invokeWithoutUpdates
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Join a channel/supergroup: channels.joinChannel
-
-* Kick user from channel: channels.kickFromChannel
-
-* Leave a channel/supergroup: channels.leaveChannel
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark channel/supergroup history as read: channels.readHistory
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Register device for push notifications: account.registerDevice
-
-* Remove a sticker set: messages.uninstallStickerSet
-
-* Reorder sticker sets: messages.reorderStickerSets
-
-* Report a message in a supergroup/channel for spam: channels.reportSpam
-
-* Report a peer for spam: messages.reportSpam
-
-* Report for spam: account.reportPeer
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Save a GIF: messages.saveGif
-
-* Search contacts: contacts.search
-
-* Search gifs: messages.searchGifs
-
-* Search peers or messages: messages.search
-
-* Send SMS verification code: auth.sendSms
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message to all users in the chat list: messages.sendBroadcast
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send an email to recover the 2FA password: auth.requestPasswordRecovery
-
-* Send inline bot result obtained with messages.getInlineBotResults to the chat: messages.sendInlineBotResult
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Send verification phone call: auth.sendCall
-
-* Set account TTL: account.setAccountTTL
-
-* Set privacy settings: account.setPrivacy
-
-* Start a bot: messages.startBot
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update profile info: account.updateProfile
-
-* Update the username of a supergroup/channel: channels.updateUsername
-
-* Update this user's username: account.updateUsername
-
-* Upload profile photo: photos.uploadProfilePhoto
-
-* Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
-
diff --git a/old_docs/API_docs_v46/methods/account_changePhone.md b/old_docs/API_docs_v46/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/old_docs/API_docs_v46/methods/account_changePhone.md
+++ b/old_docs/API_docs_v46/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v46/methods/account_checkUsername.md b/old_docs/API_docs_v46/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v46/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v46/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v46/methods/account_getNotifySettings.md b/old_docs/API_docs_v46/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v46/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v46/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v46/methods/account_getPasswordSettings.md b/old_docs/API_docs_v46/methods/account_getPasswordSettings.md
index 8ebb78ee..8f878365 100644
--- a/old_docs/API_docs_v46/methods/account_getPasswordSettings.md
+++ b/old_docs/API_docs_v46/methods/account_getPasswordSettings.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+Get the current 2FA settings
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+### Return type: [account\_PasswordSettings](../types/account_PasswordSettings.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$account_PasswordSettings = $MadelineProto->account->getPasswordSettings(['current_password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+account_PasswordSettings = account.getPasswordSettings({current_password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v46/methods/account_getPrivacy.md b/old_docs/API_docs_v46/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/old_docs/API_docs_v46/methods/account_getPrivacy.md
+++ b/old_docs/API_docs_v46/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v46/methods/account_registerDevice.md b/old_docs/API_docs_v46/methods/account_registerDevice.md
index ab5a56a6..908977a3 100644
--- a/old_docs/API_docs_v46/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v46/methods/account_registerDevice.md
@@ -48,10 +48,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({token_type=int, token='string', device_model='string', system_version='string', app_version='string', app_sandbox=Bool, lang_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v46/methods/account_reportPeer.md b/old_docs/API_docs_v46/methods/account_reportPeer.md
index a203c900..87b080eb 100644
--- a/old_docs/API_docs_v46/methods/account_reportPeer.md
+++ b/old_docs/API_docs_v46/methods/account_reportPeer.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.reportPeer({peer=InputPeer, reason=ReportReason, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v46/methods/account_resetAuthorization.md b/old_docs/API_docs_v46/methods/account_resetAuthorization.md
index c950992c..e8e8ecc4 100644
--- a/old_docs/API_docs_v46/methods/account_resetAuthorization.md
+++ b/old_docs/API_docs_v46/methods/account_resetAuthorization.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.resetAuthorization({hash=long, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v46/methods/account_sendChangePhoneCode.md b/old_docs/API_docs_v46/methods/account_sendChangePhoneCode.md
index c4bc0675..8537d9d9 100644
--- a/old_docs/API_docs_v46/methods/account_sendChangePhoneCode.md
+++ b/old_docs/API_docs_v46/methods/account_sendChangePhoneCode.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_SentChangePhoneCode = account.sendChangePhoneCode({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v46/methods/account_setAccountTTL.md b/old_docs/API_docs_v46/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/old_docs/API_docs_v46/methods/account_setAccountTTL.md
+++ b/old_docs/API_docs_v46/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/old_docs/API_docs_v46/methods/account_setPrivacy.md b/old_docs/API_docs_v46/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/old_docs/API_docs_v46/methods/account_setPrivacy.md
+++ b/old_docs/API_docs_v46/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v46/methods/account_unregisterDevice.md b/old_docs/API_docs_v46/methods/account_unregisterDevice.md
index 589f48b0..a184da43 100644
--- a/old_docs/API_docs_v46/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v46/methods/account_unregisterDevice.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v46/methods/account_updateNotifySettings.md b/old_docs/API_docs_v46/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v46/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v46/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v46/methods/account_updatePasswordSettings.md b/old_docs/API_docs_v46/methods/account_updatePasswordSettings.md
index 80f27228..68e5da6d 100644
--- a/old_docs/API_docs_v46/methods/account_updatePasswordSettings.md
+++ b/old_docs/API_docs_v46/methods/account_updatePasswordSettings.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+|new\_settings|[account\_PasswordInputSettings](../types/account_PasswordInputSettings.md) | New 2FA settings | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->account->updatePasswordSettings(['current_password_hash' => 'bytes', 'new_settings' => account_PasswordInputSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = account.updatePasswordSettings({current_password_hash='bytes', new_settings=account_PasswordInputSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EMAIL_UNCONFIRMED|Email unconfirmed|
+|400|EMAIL_UNCONFIRMED_X|The provided email isn't confirmed, X is the length of the verification code that was just sent to the email.|
+|400|NEW_SALT_INVALID|The new salt is invalid|
+|400|NEW_SETTINGS_INVALID|The new settings are invalid|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v46/methods/account_updateProfile.md b/old_docs/API_docs_v46/methods/account_updateProfile.md
index 486f63bc..33423686 100644
--- a/old_docs/API_docs_v46/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v46/methods/account_updateProfile.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v46/methods/account_updateStatus.md b/old_docs/API_docs_v46/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v46/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v46/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v46/methods/account_updateUsername.md b/old_docs/API_docs_v46/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v46/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v46/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v46/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v46/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v46/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v46/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v46/methods/auth_checkPassword.md b/old_docs/API_docs_v46/methods/auth_checkPassword.md
index 8d76c483..db65cb56 100644
--- a/old_docs/API_docs_v46/methods/auth_checkPassword.md
+++ b/old_docs/API_docs_v46/methods/auth_checkPassword.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->checkPassword(['password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.checkPassword({password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v46/methods/auth_checkPhone.md b/old_docs/API_docs_v46/methods/auth_checkPhone.md
index f3e32365..e974ce7f 100644
--- a/old_docs/API_docs_v46/methods/auth_checkPhone.md
+++ b/old_docs/API_docs_v46/methods/auth_checkPhone.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
auth_CheckedPhone = auth.checkPhone({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v46/methods/auth_exportAuthorization.md b/old_docs/API_docs_v46/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v46/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v46/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v46/methods/auth_importAuthorization.md b/old_docs/API_docs_v46/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v46/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v46/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v46/methods/auth_importBotAuthorization.md b/old_docs/API_docs_v46/methods/auth_importBotAuthorization.md
index 1a98c1b9..98a2f8ca 100644
--- a/old_docs/API_docs_v46/methods/auth_importBotAuthorization.md
+++ b/old_docs/API_docs_v46/methods/auth_importBotAuthorization.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|api\_id|[int](../types/int.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_hash|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|bot\_auth\_token|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importBotAuthorization(['api_id' => int, 'api_hash' => 'string', 'bot_auth_token' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importBotAuthorization({api_id=int, api_hash='string', bot_auth_token='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ACCESS_TOKEN_EXPIRED|Access token expired|
+|400|ACCESS_TOKEN_INVALID|Access token invalid|
+|400|API_ID_INVALID|API ID invalid|
diff --git a/old_docs/API_docs_v46/methods/auth_logOut.md b/old_docs/API_docs_v46/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v46/methods/auth_logOut.md
+++ b/old_docs/API_docs_v46/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v46/methods/auth_recoverPassword.md b/old_docs/API_docs_v46/methods/auth_recoverPassword.md
index 83ff5aed..d4bad9c5 100644
--- a/old_docs/API_docs_v46/methods/auth_recoverPassword.md
+++ b/old_docs/API_docs_v46/methods/auth_recoverPassword.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
auth_Authorization = auth.recoverPassword({code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_EMPTY|The provided code is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_EMPTY|The provided code is empty|
diff --git a/old_docs/API_docs_v46/methods/auth_requestPasswordRecovery.md b/old_docs/API_docs_v46/methods/auth_requestPasswordRecovery.md
index 1864bbb0..b6ad57ba 100644
--- a/old_docs/API_docs_v46/methods/auth_requestPasswordRecovery.md
+++ b/old_docs/API_docs_v46/methods/auth_requestPasswordRecovery.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
auth_PasswordRecovery = auth.requestPasswordRecovery({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_EMPTY|The provided password is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_EMPTY|The provided password is empty|
diff --git a/old_docs/API_docs_v46/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v46/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v46/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v46/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v46/methods/auth_sendCode.md b/old_docs/API_docs_v46/methods/auth_sendCode.md
index 9afebb55..4e856d6a 100644
--- a/old_docs/API_docs_v46/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v46/methods/auth_sendCode.md
@@ -7,8 +7,59 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|sms\_type|[int](../types/int.md) | You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+|lang\_code|[string](../types/string.md) | You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['phone_number' => 'string', 'sms_type' => int, 'api_id' => int, 'api_hash' => 'string', 'lang_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({phone_number='string', sms_type=int, api_id=int, api_hash='string', lang_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v46/methods/auth_sendInvites.md b/old_docs/API_docs_v46/methods/auth_sendInvites.md
index e10c1109..4c11023e 100644
--- a/old_docs/API_docs_v46/methods/auth_sendInvites.md
+++ b/old_docs/API_docs_v46/methods/auth_sendInvites.md
@@ -49,10 +49,10 @@ Bool = auth.sendInvites({phone_numbers={'string'}, message='string', })
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_EMPTY|The provided message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_EMPTY|The provided message is empty|
diff --git a/old_docs/API_docs_v46/methods/auth_signIn.md b/old_docs/API_docs_v46/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v46/methods/auth_signIn.md
+++ b/old_docs/API_docs_v46/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v46/methods/auth_signUp.md b/old_docs/API_docs_v46/methods/auth_signUp.md
index 15960145..31154486 100644
--- a/old_docs/API_docs_v46/methods/auth_signUp.md
+++ b/old_docs/API_docs_v46/methods/auth_signUp.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', phone_code='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v46/methods/channels_checkUsername.md b/old_docs/API_docs_v46/methods/channels_checkUsername.md
index 483a2f6f..52365d34 100644
--- a/old_docs/API_docs_v46/methods/channels_checkUsername.md
+++ b/old_docs/API_docs_v46/methods/channels_checkUsername.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Bool = channels.checkUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v46/methods/channels_createChannel.md b/old_docs/API_docs_v46/methods/channels_createChannel.md
index b924e6a6..ecaee0ef 100644
--- a/old_docs/API_docs_v46/methods/channels_createChannel.md
+++ b/old_docs/API_docs_v46/methods/channels_createChannel.md
@@ -45,12 +45,12 @@ Or, if you're into Lua:
Updates = channels.createChannel({broadcast=Bool, megagroup=Bool, title='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_TITLE_EMPTY|No chat title provided|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
+|406|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v46/methods/channels_deleteChannel.md b/old_docs/API_docs_v46/methods/channels_deleteChannel.md
index 53a9c23d..1b8d2d48 100644
--- a/old_docs/API_docs_v46/methods/channels_deleteChannel.md
+++ b/old_docs/API_docs_v46/methods/channels_deleteChannel.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Updates = channels.deleteChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v46/methods/channels_deleteMessages.md b/old_docs/API_docs_v46/methods/channels_deleteMessages.md
index f76a9ad1..463ebad0 100644
--- a/old_docs/API_docs_v46/methods/channels_deleteMessages.md
+++ b/old_docs/API_docs_v46/methods/channels_deleteMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_AffectedMessages = channels.deleteMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v46/methods/channels_deleteUserHistory.md b/old_docs/API_docs_v46/methods/channels_deleteUserHistory.md
index 0a4e7d82..33905a7e 100644
--- a/old_docs/API_docs_v46/methods/channels_deleteUserHistory.md
+++ b/old_docs/API_docs_v46/methods/channels_deleteUserHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedHistory = channels.deleteUserHistory({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v46/methods/channels_editAbout.md b/old_docs/API_docs_v46/methods/channels_editAbout.md
index 47111668..d5e090e0 100644
--- a/old_docs/API_docs_v46/methods/channels_editAbout.md
+++ b/old_docs/API_docs_v46/methods/channels_editAbout.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Bool = channels.editAbout({channel=InputChannel, about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
-|CHAT_ABOUT_TOO_LONG|Chat about too long|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
+|400|CHAT_ABOUT_TOO_LONG|Chat about too long|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v46/methods/channels_editAdmin.md b/old_docs/API_docs_v46/methods/channels_editAdmin.md
index 3fbaf64d..229318fb 100644
--- a/old_docs/API_docs_v46/methods/channels_editAdmin.md
+++ b/old_docs/API_docs_v46/methods/channels_editAdmin.md
@@ -44,19 +44,19 @@ Or, if you're into Lua:
Updates = channels.editAdmin({channel=InputChannel, user_id=InputUser, role=ChannelParticipantRole, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ADMINS_TOO_MUCH|There are too many admins|
-|BOT_CHANNELS_NA|Bots can't edit admin privileges|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
-|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ADMINS_TOO_MUCH|There are too many admins|
+|400|BOT_CHANNELS_NA|Bots can't edit admin privileges|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
+|403|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v46/methods/channels_editPhoto.md b/old_docs/API_docs_v46/methods/channels_editPhoto.md
index bec0ba48..caef32d5 100644
--- a/old_docs/API_docs_v46/methods/channels_editPhoto.md
+++ b/old_docs/API_docs_v46/methods/channels_editPhoto.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editPhoto({channel=InputChannel, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|PHOTO_INVALID|Photo invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|PHOTO_INVALID|Photo invalid|
diff --git a/old_docs/API_docs_v46/methods/channels_editTitle.md b/old_docs/API_docs_v46/methods/channels_editTitle.md
index b5efeb39..d7cb33da 100644
--- a/old_docs/API_docs_v46/methods/channels_editTitle.md
+++ b/old_docs/API_docs_v46/methods/channels_editTitle.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editTitle({channel=InputChannel, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v46/methods/channels_exportInvite.md b/old_docs/API_docs_v46/methods/channels_exportInvite.md
index 0918b3e7..9d578deb 100644
--- a/old_docs/API_docs_v46/methods/channels_exportInvite.md
+++ b/old_docs/API_docs_v46/methods/channels_exportInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ExportedChatInvite = channels.exportInvite({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INVITE_HASH_EXPIRED|The invite link has expired|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
diff --git a/old_docs/API_docs_v46/methods/channels_getChannels.md b/old_docs/API_docs_v46/methods/channels_getChannels.md
index 78d50641..95d7a188 100644
--- a/old_docs/API_docs_v46/methods/channels_getChannels.md
+++ b/old_docs/API_docs_v46/methods/channels_getChannels.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = channels.getChannels({id={InputChannel}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v46/methods/channels_getFullChannel.md b/old_docs/API_docs_v46/methods/channels_getFullChannel.md
index 45a8ec72..ebd53de4 100644
--- a/old_docs/API_docs_v46/methods/channels_getFullChannel.md
+++ b/old_docs/API_docs_v46/methods/channels_getFullChannel.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->channels->getFullChannel(['channel' => InputChannel, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = channels.getFullChannel({channel=InputChannel, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v46/methods/channels_getMessages.md b/old_docs/API_docs_v46/methods/channels_getMessages.md
index aa85d640..57bcc60f 100644
--- a/old_docs/API_docs_v46/methods/channels_getMessages.md
+++ b/old_docs/API_docs_v46/methods/channels_getMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_Messages = channels.getMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
diff --git a/old_docs/API_docs_v46/methods/channels_getParticipant.md b/old_docs/API_docs_v46/methods/channels_getParticipant.md
index 6633114f..808156fd 100644
--- a/old_docs/API_docs_v46/methods/channels_getParticipant.md
+++ b/old_docs/API_docs_v46/methods/channels_getParticipant.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
channels_ChannelParticipant = channels.getParticipant({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v46/methods/channels_getParticipants.md b/old_docs/API_docs_v46/methods/channels_getParticipants.md
index d4bd8779..21d4a418 100644
--- a/old_docs/API_docs_v46/methods/channels_getParticipants.md
+++ b/old_docs/API_docs_v46/methods/channels_getParticipants.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, filter=ChannelParticipantsFilter, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v46/methods/channels_inviteToChannel.md b/old_docs/API_docs_v46/methods/channels_inviteToChannel.md
index f7093f13..d8c5e88a 100644
--- a/old_docs/API_docs_v46/methods/channels_inviteToChannel.md
+++ b/old_docs/API_docs_v46/methods/channels_inviteToChannel.md
@@ -43,25 +43,25 @@ Or, if you're into Lua:
Updates = channels.inviteToChannel({channel=InputChannel, users={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
-|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_BLOCKED|User blocked|
-|USER_BOT|Bots can only be admins in channels.|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_KICKED|This user was kicked from this supergroup/channel|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
+|400|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_BLOCKED|User blocked|
+|400|USER_BOT|Bots can only be admins in channels.|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_KICKED|This user was kicked from this supergroup/channel|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v46/methods/channels_joinChannel.md b/old_docs/API_docs_v46/methods/channels_joinChannel.md
index b056031a..a4a7c177 100644
--- a/old_docs/API_docs_v46/methods/channels_joinChannel.md
+++ b/old_docs/API_docs_v46/methods/channels_joinChannel.md
@@ -42,15 +42,15 @@ Or, if you're into Lua:
Updates = channels.joinChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
diff --git a/old_docs/API_docs_v46/methods/channels_leaveChannel.md b/old_docs/API_docs_v46/methods/channels_leaveChannel.md
index fdea13ba..6538d443 100644
--- a/old_docs/API_docs_v46/methods/channels_leaveChannel.md
+++ b/old_docs/API_docs_v46/methods/channels_leaveChannel.md
@@ -42,14 +42,14 @@ Or, if you're into Lua:
Updates = channels.leaveChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
-|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
diff --git a/old_docs/API_docs_v46/methods/channels_readHistory.md b/old_docs/API_docs_v46/methods/channels_readHistory.md
index 93dc075f..3532dae0 100644
--- a/old_docs/API_docs_v46/methods/channels_readHistory.md
+++ b/old_docs/API_docs_v46/methods/channels_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readHistory({channel=InputChannel, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v46/methods/channels_reportSpam.md b/old_docs/API_docs_v46/methods/channels_reportSpam.md
index db80676a..7e273cc5 100644
--- a/old_docs/API_docs_v46/methods/channels_reportSpam.md
+++ b/old_docs/API_docs_v46/methods/channels_reportSpam.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
Bool = channels.reportSpam({channel=InputChannel, user_id=InputUser, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
diff --git a/old_docs/API_docs_v46/methods/channels_updateUsername.md b/old_docs/API_docs_v46/methods/channels_updateUsername.md
index 677712f9..48d250e6 100644
--- a/old_docs/API_docs_v46/methods/channels_updateUsername.md
+++ b/old_docs/API_docs_v46/methods/channels_updateUsername.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Bool = channels.updateUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_OCCUPIED|The provided username is already occupied|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
diff --git a/old_docs/API_docs_v46/methods/contacts_block.md b/old_docs/API_docs_v46/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v46/methods/contacts_block.md
+++ b/old_docs/API_docs_v46/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v46/methods/contacts_deleteContact.md b/old_docs/API_docs_v46/methods/contacts_deleteContact.md
index ba9569e4..a9321d64 100644
--- a/old_docs/API_docs_v46/methods/contacts_deleteContact.md
+++ b/old_docs/API_docs_v46/methods/contacts_deleteContact.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
contacts_Link = contacts.deleteContact({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v46/methods/contacts_deleteContacts.md b/old_docs/API_docs_v46/methods/contacts_deleteContacts.md
index bfc91fdd..3c8e90f0 100644
--- a/old_docs/API_docs_v46/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v46/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v46/methods/contacts_getStatuses.md b/old_docs/API_docs_v46/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v46/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v46/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v46/methods/contacts_importCard.md b/old_docs/API_docs_v46/methods/contacts_importCard.md
index 15addde1..ed3d17fe 100644
--- a/old_docs/API_docs_v46/methods/contacts_importCard.md
+++ b/old_docs/API_docs_v46/methods/contacts_importCard.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
User = contacts.importCard({export_card={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|EXPORT_CARD_INVALID|Provided card is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EXPORT_CARD_INVALID|Provided card is invalid|
diff --git a/old_docs/API_docs_v46/methods/contacts_resolveUsername.md b/old_docs/API_docs_v46/methods/contacts_resolveUsername.md
index fab56bb1..68f709db 100644
--- a/old_docs/API_docs_v46/methods/contacts_resolveUsername.md
+++ b/old_docs/API_docs_v46/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [contacts\_ResolvedPeer](../types/contacts_ResolvedPeer.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$contacts_ResolvedPeer = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+contacts_ResolvedPeer = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v46/methods/contacts_search.md b/old_docs/API_docs_v46/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v46/methods/contacts_search.md
+++ b/old_docs/API_docs_v46/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v46/methods/contacts_unblock.md b/old_docs/API_docs_v46/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v46/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v46/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v46/methods/help_getConfig.md b/old_docs/API_docs_v46/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v46/methods/help_getConfig.md
+++ b/old_docs/API_docs_v46/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v46/methods/initConnection.md b/old_docs/API_docs_v46/methods/initConnection.md
index 659f4e6b..a41f0c4d 100644
--- a/old_docs/API_docs_v46/methods/initConnection.md
+++ b/old_docs/API_docs_v46/methods/initConnection.md
@@ -47,11 +47,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', lang_code='string', query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v46/methods/invokeWithLayer.md b/old_docs/API_docs_v46/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/old_docs/API_docs_v46/methods/invokeWithLayer.md
+++ b/old_docs/API_docs_v46/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v46/methods/messages_acceptEncryption.md b/old_docs/API_docs_v46/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v46/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v46/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v46/methods/messages_addChatUser.md b/old_docs/API_docs_v46/methods/messages_addChatUser.md
index bc0d6253..b5e164b2 100644
--- a/old_docs/API_docs_v46/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v46/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
Updates = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v46/methods/messages_checkChatInvite.md b/old_docs/API_docs_v46/methods/messages_checkChatInvite.md
index de28b09b..0d13d55e 100644
--- a/old_docs/API_docs_v46/methods/messages_checkChatInvite.md
+++ b/old_docs/API_docs_v46/methods/messages_checkChatInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ChatInvite = messages.checkChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
diff --git a/old_docs/API_docs_v46/methods/messages_createChat.md b/old_docs/API_docs_v46/methods/messages_createChat.md
index 8f6e9672..b2623f1d 100644
--- a/old_docs/API_docs_v46/methods/messages_createChat.md
+++ b/old_docs/API_docs_v46/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v46/methods/messages_deleteChatUser.md b/old_docs/API_docs_v46/methods/messages_deleteChatUser.md
index 63529571..11b9b220 100644
--- a/old_docs/API_docs_v46/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v46/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v46/methods/messages_deleteHistory.md b/old_docs/API_docs_v46/methods/messages_deleteHistory.md
index a906587c..be19b57b 100644
--- a/old_docs/API_docs_v46/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v46/methods/messages_deleteHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v46/methods/messages_deleteMessages.md b/old_docs/API_docs_v46/methods/messages_deleteMessages.md
index 6df3ffec..a0d79592 100644
--- a/old_docs/API_docs_v46/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v46/methods/messages_deleteMessages.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.deleteMessages({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v46/methods/messages_discardEncryption.md b/old_docs/API_docs_v46/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v46/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v46/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v46/methods/messages_editChatAdmin.md b/old_docs/API_docs_v46/methods/messages_editChatAdmin.md
index 2b4dc94c..6f6c1376 100644
--- a/old_docs/API_docs_v46/methods/messages_editChatAdmin.md
+++ b/old_docs/API_docs_v46/methods/messages_editChatAdmin.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.editChatAdmin({chat_id=InputPeer, user_id=InputUser, is_admin=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v46/methods/messages_editChatPhoto.md b/old_docs/API_docs_v46/methods/messages_editChatPhoto.md
index 2a82c232..a21a03b9 100644
--- a/old_docs/API_docs_v46/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v46/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Updates = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v46/methods/messages_editChatTitle.md b/old_docs/API_docs_v46/methods/messages_editChatTitle.md
index 2c338ad6..72f78741 100644
--- a/old_docs/API_docs_v46/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v46/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v46/methods/messages_exportChatInvite.md b/old_docs/API_docs_v46/methods/messages_exportChatInvite.md
index f3449e79..bc6272e4 100644
--- a/old_docs/API_docs_v46/methods/messages_exportChatInvite.md
+++ b/old_docs/API_docs_v46/methods/messages_exportChatInvite.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
ExportedChatInvite = messages.exportChatInvite({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v46/methods/messages_forwardMessage.md b/old_docs/API_docs_v46/methods/messages_forwardMessage.md
index c8e0b18d..95f6d2f3 100644
--- a/old_docs/API_docs_v46/methods/messages_forwardMessage.md
+++ b/old_docs/API_docs_v46/methods/messages_forwardMessage.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Updates = messages.forwardMessage({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|YOU_BLOCKED_USER|You blocked this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|YOU_BLOCKED_USER|You blocked this user|
diff --git a/old_docs/API_docs_v46/methods/messages_forwardMessages.md b/old_docs/API_docs_v46/methods/messages_forwardMessages.md
index baa3d481..ce66ff7b 100644
--- a/old_docs/API_docs_v46/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v46/methods/messages_forwardMessages.md
@@ -45,29 +45,29 @@ Or, if you're into Lua:
Updates = messages.forwardMessages({broadcast=Bool, from_peer=InputPeer, id={int}, to_peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v46/methods/messages_getChats.md b/old_docs/API_docs_v46/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/old_docs/API_docs_v46/methods/messages_getChats.md
+++ b/old_docs/API_docs_v46/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v46/methods/messages_getDhConfig.md b/old_docs/API_docs_v46/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v46/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v46/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v46/methods/messages_getDialogs.md b/old_docs/API_docs_v46/methods/messages_getDialogs.md
index 024b0068..8d8522d5 100644
--- a/old_docs/API_docs_v46/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v46/methods/messages_getDialogs.md
@@ -45,13 +45,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({offset_date=int, offset_id=int, offset_peer=InputPeer, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v46/methods/messages_getDocumentByHash.md b/old_docs/API_docs_v46/methods/messages_getDocumentByHash.md
index 73a235d5..06469c52 100644
--- a/old_docs/API_docs_v46/methods/messages_getDocumentByHash.md
+++ b/old_docs/API_docs_v46/methods/messages_getDocumentByHash.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Document = messages.getDocumentByHash({sha256='bytes', size=int, mime_type='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
diff --git a/old_docs/API_docs_v46/methods/messages_getFullChat.md b/old_docs/API_docs_v46/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v46/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v46/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v46/methods/messages_getHistory.md b/old_docs/API_docs_v46/methods/messages_getHistory.md
index 2fc5d597..d23331cc 100644
--- a/old_docs/API_docs_v46/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v46/methods/messages_getHistory.md
@@ -47,16 +47,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v46/methods/messages_getInlineBotResults.md b/old_docs/API_docs_v46/methods/messages_getInlineBotResults.md
index cba87b19..bdde739f 100644
--- a/old_docs/API_docs_v46/methods/messages_getInlineBotResults.md
+++ b/old_docs/API_docs_v46/methods/messages_getInlineBotResults.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
messages_BotResults = messages.getInlineBotResults({bot=InputUser, query='string', offset='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
-|BOT_INVALID|This is not a valid bot|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
+|400|BOT_INVALID|This is not a valid bot|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v46/methods/messages_getMessagesViews.md b/old_docs/API_docs_v46/methods/messages_getMessagesViews.md
index 3d490315..143e568c 100644
--- a/old_docs/API_docs_v46/methods/messages_getMessagesViews.md
+++ b/old_docs/API_docs_v46/methods/messages_getMessagesViews.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
Vector_of_int = messages.getMessagesViews({peer=InputPeer, id={int}, increment=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v46/methods/messages_getStickerSet.md b/old_docs/API_docs_v46/methods/messages_getStickerSet.md
index 57bce84d..487316cc 100644
--- a/old_docs/API_docs_v46/methods/messages_getStickerSet.md
+++ b/old_docs/API_docs_v46/methods/messages_getStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_StickerSet = messages.getStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v46/methods/messages_importChatInvite.md b/old_docs/API_docs_v46/methods/messages_importChatInvite.md
index 12120867..101b4b19 100644
--- a/old_docs/API_docs_v46/methods/messages_importChatInvite.md
+++ b/old_docs/API_docs_v46/methods/messages_importChatInvite.md
@@ -42,16 +42,16 @@ Or, if you're into Lua:
Updates = messages.importChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v46/methods/messages_installStickerSet.md b/old_docs/API_docs_v46/methods/messages_installStickerSet.md
index e1f691f2..3803f946 100644
--- a/old_docs/API_docs_v46/methods/messages_installStickerSet.md
+++ b/old_docs/API_docs_v46/methods/messages_installStickerSet.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.installStickerSet({stickerset=InputStickerSet, disabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v46/methods/messages_migrateChat.md b/old_docs/API_docs_v46/methods/messages_migrateChat.md
index a72f4c11..ee4010eb 100644
--- a/old_docs/API_docs_v46/methods/messages_migrateChat.md
+++ b/old_docs/API_docs_v46/methods/messages_migrateChat.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
Updates = messages.migrateChat({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v46/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v46/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v46/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v46/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v46/methods/messages_readHistory.md b/old_docs/API_docs_v46/methods/messages_readHistory.md
index 2ad5cd09..a7f0eca7 100644
--- a/old_docs/API_docs_v46/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v46/methods/messages_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.readHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v46/methods/messages_receivedQueue.md b/old_docs/API_docs_v46/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v46/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v46/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v46/methods/messages_reportSpam.md b/old_docs/API_docs_v46/methods/messages_reportSpam.md
index e92fba13..dc256e55 100644
--- a/old_docs/API_docs_v46/methods/messages_reportSpam.md
+++ b/old_docs/API_docs_v46/methods/messages_reportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v46/methods/messages_requestEncryption.md b/old_docs/API_docs_v46/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v46/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v46/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v46/methods/messages_saveGif.md b/old_docs/API_docs_v46/methods/messages_saveGif.md
index f504ff9e..010e17ec 100644
--- a/old_docs/API_docs_v46/methods/messages_saveGif.md
+++ b/old_docs/API_docs_v46/methods/messages_saveGif.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.saveGif({id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|GIF_ID_INVALID|The provided GIF ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|GIF_ID_INVALID|The provided GIF ID is invalid|
diff --git a/old_docs/API_docs_v46/methods/messages_search.md b/old_docs/API_docs_v46/methods/messages_search.md
index 32efc390..f8941cac 100644
--- a/old_docs/API_docs_v46/methods/messages_search.md
+++ b/old_docs/API_docs_v46/methods/messages_search.md
@@ -50,16 +50,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({important_only=Bool, peer=InputPeer, q='string', filter=MessagesFilter, min_date=int, max_date=int, offset=int, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v46/methods/messages_searchGifs.md b/old_docs/API_docs_v46/methods/messages_searchGifs.md
index 7be4173b..1602d35e 100644
--- a/old_docs/API_docs_v46/methods/messages_searchGifs.md
+++ b/old_docs/API_docs_v46/methods/messages_searchGifs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_FoundGifs = messages.searchGifs({q='string', offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v46/methods/messages_searchGlobal.md b/old_docs/API_docs_v46/methods/messages_searchGlobal.md
index fb38398b..c8da163c 100644
--- a/old_docs/API_docs_v46/methods/messages_searchGlobal.md
+++ b/old_docs/API_docs_v46/methods/messages_searchGlobal.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
messages_Messages = messages.searchGlobal({q='string', offset_date=int, offset_peer=InputPeer, offset_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v46/methods/messages_sendEncrypted.md b/old_docs/API_docs_v46/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v46/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v46/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v46/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v46/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v46/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v46/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v46/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v46/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v46/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v46/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v46/methods/messages_sendInlineBotResult.md b/old_docs/API_docs_v46/methods/messages_sendInlineBotResult.md
index bb1ce258..e2f8ceb6 100644
--- a/old_docs/API_docs_v46/methods/messages_sendInlineBotResult.md
+++ b/old_docs/API_docs_v46/methods/messages_sendInlineBotResult.md
@@ -46,15 +46,15 @@ Or, if you're into Lua:
Updates = messages.sendInlineBotResult({broadcast=Bool, peer=InputPeer, reply_to_msg_id=int, query_id=long, id='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INLINE_RESULT_EXPIRED|The inline query expired|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|QUERY_ID_EMPTY|The query ID is empty|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INLINE_RESULT_EXPIRED|The inline query expired|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|QUERY_ID_EMPTY|The query ID is empty|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v46/methods/messages_sendMedia.md b/old_docs/API_docs_v46/methods/messages_sendMedia.md
index 8413e296..1770c3ea 100644
--- a/old_docs/API_docs_v46/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v46/methods/messages_sendMedia.md
@@ -52,31 +52,31 @@ Updates = messages.sendMedia({broadcast=Bool, peer=InputPeer, reply_to_msg_id=in
You can provide bot API reply_markup objects here.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v46/methods/messages_sendMessage.md b/old_docs/API_docs_v46/methods/messages_sendMessage.md
index 4a990893..39f9df64 100644
--- a/old_docs/API_docs_v46/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v46/methods/messages_sendMessage.md
@@ -97,31 +97,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v46/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v46/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v46/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v46/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v46/methods/messages_setInlineBotResults.md b/old_docs/API_docs_v46/methods/messages_setInlineBotResults.md
index 6c3422e6..8dcb6059 100644
--- a/old_docs/API_docs_v46/methods/messages_setInlineBotResults.md
+++ b/old_docs/API_docs_v46/methods/messages_setInlineBotResults.md
@@ -47,23 +47,23 @@ Or, if you're into Lua:
Bool = messages.setInlineBotResults({gallery=Bool, private=Bool, query_id=long, results={InputBotInlineResult}, cache_time=int, next_offset='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ARTICLE_TITLE_EMPTY|The title of the article is empty|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|PHOTO_INVALID|Photo invalid|
-|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
-|QUERY_ID_INVALID|The query ID is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|RESULT_TYPE_INVALID|Result type invalid|
-|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
-|START_PARAM_INVALID|Start parameter invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ARTICLE_TITLE_EMPTY|The title of the article is empty|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|PHOTO_INVALID|Photo invalid|
+|400|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|RESULT_TYPE_INVALID|Result type invalid|
+|400|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
+|400|START_PARAM_INVALID|Start parameter invalid|
+|403|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v46/methods/messages_setTyping.md b/old_docs/API_docs_v46/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v46/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v46/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v46/methods/messages_startBot.md b/old_docs/API_docs_v46/methods/messages_startBot.md
index aa2b2d00..4bf12aa6 100644
--- a/old_docs/API_docs_v46/methods/messages_startBot.md
+++ b/old_docs/API_docs_v46/methods/messages_startBot.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = messages.startBot({bot=InputUser, peer=InputPeer, start_param='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INVALID|This is not a valid bot|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|START_PARAM_EMPTY|The start parameter is empty|
-|START_PARAM_INVALID|Start parameter invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INVALID|This is not a valid bot|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|START_PARAM_EMPTY|The start parameter is empty|
+|400|START_PARAM_INVALID|Start parameter invalid|
diff --git a/old_docs/API_docs_v46/methods/messages_toggleChatAdmins.md b/old_docs/API_docs_v46/methods/messages_toggleChatAdmins.md
index 7851806d..8ea6e65e 100644
--- a/old_docs/API_docs_v46/methods/messages_toggleChatAdmins.md
+++ b/old_docs/API_docs_v46/methods/messages_toggleChatAdmins.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.toggleChatAdmins({chat_id=InputPeer, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v46/methods/messages_uninstallStickerSet.md b/old_docs/API_docs_v46/methods/messages_uninstallStickerSet.md
index 59abc510..6b7a2006 100644
--- a/old_docs/API_docs_v46/methods/messages_uninstallStickerSet.md
+++ b/old_docs/API_docs_v46/methods/messages_uninstallStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.uninstallStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v46/methods/photos_getUserPhotos.md b/old_docs/API_docs_v46/methods/photos_getUserPhotos.md
index 57f5772b..a01f3180 100644
--- a/old_docs/API_docs_v46/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v46/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v46/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v46/methods/photos_updateProfilePhoto.md
index 53d0b12f..db7fe164 100644
--- a/old_docs/API_docs_v46/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v46/methods/photos_updateProfilePhoto.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, crop=InputPhotoCrop, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v46/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v46/methods/photos_uploadProfilePhoto.md
index f140329e..10653c42 100644
--- a/old_docs/API_docs_v46/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v46/methods/photos_uploadProfilePhoto.md
@@ -45,13 +45,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, caption='string', geo_point=InputGeoPoint, crop=InputPhotoCrop, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v46/methods/updates_getChannelDifference.md b/old_docs/API_docs_v46/methods/updates_getChannelDifference.md
index 6fa79529..08d497ed 100644
--- a/old_docs/API_docs_v46/methods/updates_getChannelDifference.md
+++ b/old_docs/API_docs_v46/methods/updates_getChannelDifference.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|filter|[ChannelMessagesFilter](../types/ChannelMessagesFilter.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_ChannelDifference](../types/updates_ChannelDifference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_ChannelDifference = $MadelineProto->updates->getChannelDifference(['channel' => InputChannel, 'filter' => ChannelMessagesFilter, 'pts' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_ChannelDifference = updates.getChannelDifference({channel=InputChannel, filter=ChannelMessagesFilter, pts=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|400|RANGES_INVALID|Invalid range provided|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v46/methods/updates_getDifference.md b/old_docs/API_docs_v46/methods/updates_getDifference.md
index 33e7d7f2..57ea6d99 100644
--- a/old_docs/API_docs_v46/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v46/methods/updates_getDifference.md
@@ -7,8 +7,54 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v46/methods/updates_getState.md b/old_docs/API_docs_v46/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v46/methods/updates_getState.md
+++ b/old_docs/API_docs_v46/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v46/methods/upload_getFile.md b/old_docs/API_docs_v46/methods/upload_getFile.md
index c72e6090..d8b433d6 100644
--- a/old_docs/API_docs_v46/methods/upload_getFile.md
+++ b/old_docs/API_docs_v46/methods/upload_getFile.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v46/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v46/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v46/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v46/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v46/methods/upload_saveFilePart.md b/old_docs/API_docs_v46/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v46/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v46/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v46/methods/users_getFullUser.md b/old_docs/API_docs_v46/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v46/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v46/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v46/methods/users_getUsers.md b/old_docs/API_docs_v46/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v46/methods/users_getUsers.md
+++ b/old_docs/API_docs_v46/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v51/methods/README.md b/old_docs/API_docs_v51/methods/README.md
index 080d2ab9..a161eab6 100644
--- a/old_docs/API_docs_v51/methods/README.md
+++ b/old_docs/API_docs_v51/methods/README.md
@@ -30,289 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Add a sticker set: messages.installStickerSet
-
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add phone number as contact: contacts.importContacts
-
-* Add users to channel/supergroup: channels.inviteToChannel
-
-* Allow or disallow any user to invite users to this channel/supergroup: channels.toggleInvites
-
-* Block a user: contacts.block
-
-* Bots only: set the callback answer (after a button was clicked): messages.setBotCallbackAnswer
-
-* Bots only: set the results of an inline query: messages.setInlineBotResults
-
-* Call inline bot: messages.getInlineBotResults
-
-* Change notification settings: account.updateNotifySettings
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if about to edit a message or a media caption: messages.getMessageEditData
-
-* Check if an invitation link is valid: messages.checkChatInvite
-
-* Check if this phone number is registered on telegram: auth.checkPhone
-
-* Check if this username is available: account.checkUsername
-
-* Check if this username is free and can be assigned to a channel/supergroup: channels.checkUsername
-
-* Convert chat to supergroup: messages.migrateChat
-
-* Create a chat (not supergroup): messages.createChat
-
-* Create channel/supergroup: channels.createChannel
-
-* Delete a certain session: account.resetAuthorization
-
-* Delete a channel/supergroup: channels.deleteChannel
-
-* Delete a contact: contacts.deleteContact
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete all messages of a user in a channel/supergroup: channels.deleteUserHistory
-
-* Delete channel/supergroup messages: channels.deleteMessages
-
-* Delete chat history: messages.deleteHistory
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete this account: account.deleteAccount
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Edit a message: messages.editMessage
-
-* Edit a sent inline message: messages.editInlineBotMessage
-
-* Edit admin permissions of a user in a channel/supergroup: channels.editAdmin
-
-* Edit admin permissions: messages.editChatAdmin
-
-* Edit the about text of a channel/supergroup: channels.editAbout
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the photo of a supergroup/channel: channels.editPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Edit the title of a supergroup/channel: channels.editTitle
-
-* Enable all users are admins in normal groups (not supergroups): messages.toggleChatAdmins
-
-* Enable channel comments: channels.toggleComments
-
-* Export chat invite : messages.exportChatInvite
-
-* Export contact as card: contacts.exportCard
-
-* Export the invite link of a channel: channels.exportInvite
-
-* Forward message: messages.forwardMessage
-
-* Forward messages: messages.forwardMessages
-
-* Get a stickerset: messages.getStickerSet
-
-* Get account TTL: account.getAccountTTL
-
-* Get all contacts: contacts.getContacts
-
-* Get all logged-in authorizations: account.getAuthorizations
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get and increase message views: messages.getMessagesViews
-
-* Get blocked users: contacts.getBlocked
-
-* Get channel dialogs: channels.getDialogs
-
-* Get channel/supergroup messages: channels.getMessages
-
-* Get channel/supergroup participants (you should use `$MadelineProto->get_pwr_chat($id)` instead): channels.getParticipants
-
-* Get document by SHA256 hash: messages.getDocumentByHash
-
-* Get important channel/supergroup history: channels.getImportantHistory
-
-* Get info about a certain channel/supergroup participant: channels.getParticipant
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about multiple channels/supergroups: channels.getChannels
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get invitation text: help.getInviteText
-
-* Get messages: messages.getMessages
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get saved gifs: messages.getSavedGifs
-
-* Get server configuration: help.getConfig
-
-* Get stickers: messages.getStickers
-
-* Get terms of service: help.getTermsOfService
-
-* Get the callback answer of a bot (after clicking a button): messages.getBotCallbackAnswer
-
-* Get the changelog of this app: help.getAppChangelog
-
-* Get the current password: account.getPassword
-
-* Get the link of a message in a channel: channels.exportMessageLink
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Get the settings of apeer: messages.getPeerSettings
-
-* Get webpage preview: messages.getWebPagePreview
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Global message search: messages.searchGlobal
-
-* Hide report spam popup: messages.hideReportSpam
-
-* Import card as contact: contacts.importCard
-
-* Import chat invite: messages.importChatInvite
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Invalidate sent phone code: auth.cancelCode
-
-* Invite friends to telegram!: auth.sendInvites
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invoke with method without returning updates in the socket: invokeWithoutUpdates
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Join a channel/supergroup: channels.joinChannel
-
-* Kick user from channel: channels.kickFromChannel
-
-* Leave a channel/supergroup: channels.leaveChannel
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark channel/supergroup history as read: channels.readHistory
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Register device for push notifications: account.registerDevice
-
-* Remove a sticker set: messages.uninstallStickerSet
-
-* Reorder sticker sets: messages.reorderStickerSets
-
-* Report a message in a supergroup/channel for spam: channels.reportSpam
-
-* Report a peer for spam: messages.reportSpam
-
-* Report for spam: account.reportPeer
-
-* Resend the SMS verification code: auth.resendCode
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Save a GIF: messages.saveGif
-
-* Search contacts: contacts.search
-
-* Search gifs: messages.searchGifs
-
-* Search peers or messages: messages.search
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message to all users in the chat list: messages.sendBroadcast
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send an email to recover the 2FA password: auth.requestPasswordRecovery
-
-* Send inline bot result obtained with messages.getInlineBotResults to the chat: messages.sendInlineBotResult
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Set account TTL: account.setAccountTTL
-
-* Set privacy settings: account.setPrivacy
-
-* Set the pinned message of a channel/supergroup: channels.updatePinnedMessage
-
-* Start a bot: messages.startBot
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Toggle channel signatures: channels.toggleSignatures
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update profile info: account.updateProfile
-
-* Update the username of a supergroup/channel: channels.updateUsername
-
-* Update this user's username: account.updateUsername
-
-* Upload profile photo: photos.uploadProfilePhoto
-
-* Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
-
diff --git a/old_docs/API_docs_v51/methods/account_changePhone.md b/old_docs/API_docs_v51/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/old_docs/API_docs_v51/methods/account_changePhone.md
+++ b/old_docs/API_docs_v51/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v51/methods/account_checkUsername.md b/old_docs/API_docs_v51/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v51/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v51/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v51/methods/account_getNotifySettings.md b/old_docs/API_docs_v51/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v51/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v51/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v51/methods/account_getPasswordSettings.md b/old_docs/API_docs_v51/methods/account_getPasswordSettings.md
index 8ebb78ee..8f878365 100644
--- a/old_docs/API_docs_v51/methods/account_getPasswordSettings.md
+++ b/old_docs/API_docs_v51/methods/account_getPasswordSettings.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+Get the current 2FA settings
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+### Return type: [account\_PasswordSettings](../types/account_PasswordSettings.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$account_PasswordSettings = $MadelineProto->account->getPasswordSettings(['current_password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+account_PasswordSettings = account.getPasswordSettings({current_password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v51/methods/account_getPrivacy.md b/old_docs/API_docs_v51/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/old_docs/API_docs_v51/methods/account_getPrivacy.md
+++ b/old_docs/API_docs_v51/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v51/methods/account_registerDevice.md b/old_docs/API_docs_v51/methods/account_registerDevice.md
index ab5a56a6..908977a3 100644
--- a/old_docs/API_docs_v51/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v51/methods/account_registerDevice.md
@@ -48,10 +48,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({token_type=int, token='string', device_model='string', system_version='string', app_version='string', app_sandbox=Bool, lang_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v51/methods/account_reportPeer.md b/old_docs/API_docs_v51/methods/account_reportPeer.md
index a203c900..87b080eb 100644
--- a/old_docs/API_docs_v51/methods/account_reportPeer.md
+++ b/old_docs/API_docs_v51/methods/account_reportPeer.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.reportPeer({peer=InputPeer, reason=ReportReason, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v51/methods/account_resetAuthorization.md b/old_docs/API_docs_v51/methods/account_resetAuthorization.md
index c950992c..e8e8ecc4 100644
--- a/old_docs/API_docs_v51/methods/account_resetAuthorization.md
+++ b/old_docs/API_docs_v51/methods/account_resetAuthorization.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.resetAuthorization({hash=long, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v51/methods/account_sendChangePhoneCode.md b/old_docs/API_docs_v51/methods/account_sendChangePhoneCode.md
index d5be60ef..08e5e86e 100644
--- a/old_docs/API_docs_v51/methods/account_sendChangePhoneCode.md
+++ b/old_docs/API_docs_v51/methods/account_sendChangePhoneCode.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendChangePhoneCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v51/methods/account_setAccountTTL.md b/old_docs/API_docs_v51/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/old_docs/API_docs_v51/methods/account_setAccountTTL.md
+++ b/old_docs/API_docs_v51/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/old_docs/API_docs_v51/methods/account_setPrivacy.md b/old_docs/API_docs_v51/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/old_docs/API_docs_v51/methods/account_setPrivacy.md
+++ b/old_docs/API_docs_v51/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v51/methods/account_unregisterDevice.md b/old_docs/API_docs_v51/methods/account_unregisterDevice.md
index 589f48b0..a184da43 100644
--- a/old_docs/API_docs_v51/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v51/methods/account_unregisterDevice.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v51/methods/account_updateNotifySettings.md b/old_docs/API_docs_v51/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v51/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v51/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v51/methods/account_updatePasswordSettings.md b/old_docs/API_docs_v51/methods/account_updatePasswordSettings.md
index 80f27228..68e5da6d 100644
--- a/old_docs/API_docs_v51/methods/account_updatePasswordSettings.md
+++ b/old_docs/API_docs_v51/methods/account_updatePasswordSettings.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+|new\_settings|[account\_PasswordInputSettings](../types/account_PasswordInputSettings.md) | New 2FA settings | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->account->updatePasswordSettings(['current_password_hash' => 'bytes', 'new_settings' => account_PasswordInputSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = account.updatePasswordSettings({current_password_hash='bytes', new_settings=account_PasswordInputSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EMAIL_UNCONFIRMED|Email unconfirmed|
+|400|EMAIL_UNCONFIRMED_X|The provided email isn't confirmed, X is the length of the verification code that was just sent to the email.|
+|400|NEW_SALT_INVALID|The new salt is invalid|
+|400|NEW_SETTINGS_INVALID|The new settings are invalid|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v51/methods/account_updateProfile.md b/old_docs/API_docs_v51/methods/account_updateProfile.md
index af5b6a0f..0d74c5e5 100644
--- a/old_docs/API_docs_v51/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v51/methods/account_updateProfile.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v51/methods/account_updateStatus.md b/old_docs/API_docs_v51/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v51/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v51/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v51/methods/account_updateUsername.md b/old_docs/API_docs_v51/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v51/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v51/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v51/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v51/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v51/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v51/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v51/methods/auth_cancelCode.md b/old_docs/API_docs_v51/methods/auth_cancelCode.md
index fcbd7713..a69e0118 100644
--- a/old_docs/API_docs_v51/methods/auth_cancelCode.md
+++ b/old_docs/API_docs_v51/methods/auth_cancelCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = auth.cancelCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v51/methods/auth_checkPassword.md b/old_docs/API_docs_v51/methods/auth_checkPassword.md
index 8d76c483..db65cb56 100644
--- a/old_docs/API_docs_v51/methods/auth_checkPassword.md
+++ b/old_docs/API_docs_v51/methods/auth_checkPassword.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->checkPassword(['password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.checkPassword({password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v51/methods/auth_checkPhone.md b/old_docs/API_docs_v51/methods/auth_checkPhone.md
index f3e32365..e974ce7f 100644
--- a/old_docs/API_docs_v51/methods/auth_checkPhone.md
+++ b/old_docs/API_docs_v51/methods/auth_checkPhone.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
auth_CheckedPhone = auth.checkPhone({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v51/methods/auth_exportAuthorization.md b/old_docs/API_docs_v51/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v51/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v51/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v51/methods/auth_importAuthorization.md b/old_docs/API_docs_v51/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v51/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v51/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v51/methods/auth_importBotAuthorization.md b/old_docs/API_docs_v51/methods/auth_importBotAuthorization.md
index 1a98c1b9..98a2f8ca 100644
--- a/old_docs/API_docs_v51/methods/auth_importBotAuthorization.md
+++ b/old_docs/API_docs_v51/methods/auth_importBotAuthorization.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|api\_id|[int](../types/int.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_hash|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|bot\_auth\_token|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importBotAuthorization(['api_id' => int, 'api_hash' => 'string', 'bot_auth_token' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importBotAuthorization({api_id=int, api_hash='string', bot_auth_token='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ACCESS_TOKEN_EXPIRED|Access token expired|
+|400|ACCESS_TOKEN_INVALID|Access token invalid|
+|400|API_ID_INVALID|API ID invalid|
diff --git a/old_docs/API_docs_v51/methods/auth_logOut.md b/old_docs/API_docs_v51/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v51/methods/auth_logOut.md
+++ b/old_docs/API_docs_v51/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v51/methods/auth_recoverPassword.md b/old_docs/API_docs_v51/methods/auth_recoverPassword.md
index 83ff5aed..d4bad9c5 100644
--- a/old_docs/API_docs_v51/methods/auth_recoverPassword.md
+++ b/old_docs/API_docs_v51/methods/auth_recoverPassword.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
auth_Authorization = auth.recoverPassword({code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_EMPTY|The provided code is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_EMPTY|The provided code is empty|
diff --git a/old_docs/API_docs_v51/methods/auth_requestPasswordRecovery.md b/old_docs/API_docs_v51/methods/auth_requestPasswordRecovery.md
index 1864bbb0..b6ad57ba 100644
--- a/old_docs/API_docs_v51/methods/auth_requestPasswordRecovery.md
+++ b/old_docs/API_docs_v51/methods/auth_requestPasswordRecovery.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
auth_PasswordRecovery = auth.requestPasswordRecovery({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_EMPTY|The provided password is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_EMPTY|The provided password is empty|
diff --git a/old_docs/API_docs_v51/methods/auth_resendCode.md b/old_docs/API_docs_v51/methods/auth_resendCode.md
index ff7868ea..ec730d75 100644
--- a/old_docs/API_docs_v51/methods/auth_resendCode.md
+++ b/old_docs/API_docs_v51/methods/auth_resendCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = auth.resendCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v51/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v51/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v51/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v51/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v51/methods/auth_sendCode.md b/old_docs/API_docs_v51/methods/auth_sendCode.md
index 9afebb55..407e3458 100644
--- a/old_docs/API_docs_v51/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v51/methods/auth_sendCode.md
@@ -7,8 +7,60 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|allow\_flashcall|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|current\_number|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+|lang\_code|[string](../types/string.md) | You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['allow_flashcall' => Bool, 'phone_number' => 'string', 'current_number' => Bool, 'api_id' => int, 'api_hash' => 'string', 'lang_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, api_id=int, api_hash='string', lang_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v51/methods/auth_sendInvites.md b/old_docs/API_docs_v51/methods/auth_sendInvites.md
index e10c1109..4c11023e 100644
--- a/old_docs/API_docs_v51/methods/auth_sendInvites.md
+++ b/old_docs/API_docs_v51/methods/auth_sendInvites.md
@@ -49,10 +49,10 @@ Bool = auth.sendInvites({phone_numbers={'string'}, message='string', })
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_EMPTY|The provided message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_EMPTY|The provided message is empty|
diff --git a/old_docs/API_docs_v51/methods/auth_signIn.md b/old_docs/API_docs_v51/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v51/methods/auth_signIn.md
+++ b/old_docs/API_docs_v51/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v51/methods/auth_signUp.md b/old_docs/API_docs_v51/methods/auth_signUp.md
index 15960145..31154486 100644
--- a/old_docs/API_docs_v51/methods/auth_signUp.md
+++ b/old_docs/API_docs_v51/methods/auth_signUp.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', phone_code='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v51/methods/channels_checkUsername.md b/old_docs/API_docs_v51/methods/channels_checkUsername.md
index 483a2f6f..52365d34 100644
--- a/old_docs/API_docs_v51/methods/channels_checkUsername.md
+++ b/old_docs/API_docs_v51/methods/channels_checkUsername.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Bool = channels.checkUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v51/methods/channels_createChannel.md b/old_docs/API_docs_v51/methods/channels_createChannel.md
index b924e6a6..ecaee0ef 100644
--- a/old_docs/API_docs_v51/methods/channels_createChannel.md
+++ b/old_docs/API_docs_v51/methods/channels_createChannel.md
@@ -45,12 +45,12 @@ Or, if you're into Lua:
Updates = channels.createChannel({broadcast=Bool, megagroup=Bool, title='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_TITLE_EMPTY|No chat title provided|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
+|406|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v51/methods/channels_deleteChannel.md b/old_docs/API_docs_v51/methods/channels_deleteChannel.md
index 53a9c23d..1b8d2d48 100644
--- a/old_docs/API_docs_v51/methods/channels_deleteChannel.md
+++ b/old_docs/API_docs_v51/methods/channels_deleteChannel.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Updates = channels.deleteChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v51/methods/channels_deleteMessages.md b/old_docs/API_docs_v51/methods/channels_deleteMessages.md
index f76a9ad1..463ebad0 100644
--- a/old_docs/API_docs_v51/methods/channels_deleteMessages.md
+++ b/old_docs/API_docs_v51/methods/channels_deleteMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_AffectedMessages = channels.deleteMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v51/methods/channels_deleteUserHistory.md b/old_docs/API_docs_v51/methods/channels_deleteUserHistory.md
index 0a4e7d82..33905a7e 100644
--- a/old_docs/API_docs_v51/methods/channels_deleteUserHistory.md
+++ b/old_docs/API_docs_v51/methods/channels_deleteUserHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedHistory = channels.deleteUserHistory({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v51/methods/channels_editAbout.md b/old_docs/API_docs_v51/methods/channels_editAbout.md
index 47111668..d5e090e0 100644
--- a/old_docs/API_docs_v51/methods/channels_editAbout.md
+++ b/old_docs/API_docs_v51/methods/channels_editAbout.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Bool = channels.editAbout({channel=InputChannel, about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
-|CHAT_ABOUT_TOO_LONG|Chat about too long|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
+|400|CHAT_ABOUT_TOO_LONG|Chat about too long|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v51/methods/channels_editAdmin.md b/old_docs/API_docs_v51/methods/channels_editAdmin.md
index 3fbaf64d..229318fb 100644
--- a/old_docs/API_docs_v51/methods/channels_editAdmin.md
+++ b/old_docs/API_docs_v51/methods/channels_editAdmin.md
@@ -44,19 +44,19 @@ Or, if you're into Lua:
Updates = channels.editAdmin({channel=InputChannel, user_id=InputUser, role=ChannelParticipantRole, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ADMINS_TOO_MUCH|There are too many admins|
-|BOT_CHANNELS_NA|Bots can't edit admin privileges|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
-|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ADMINS_TOO_MUCH|There are too many admins|
+|400|BOT_CHANNELS_NA|Bots can't edit admin privileges|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
+|403|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v51/methods/channels_editPhoto.md b/old_docs/API_docs_v51/methods/channels_editPhoto.md
index bec0ba48..caef32d5 100644
--- a/old_docs/API_docs_v51/methods/channels_editPhoto.md
+++ b/old_docs/API_docs_v51/methods/channels_editPhoto.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editPhoto({channel=InputChannel, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|PHOTO_INVALID|Photo invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|PHOTO_INVALID|Photo invalid|
diff --git a/old_docs/API_docs_v51/methods/channels_editTitle.md b/old_docs/API_docs_v51/methods/channels_editTitle.md
index b5efeb39..d7cb33da 100644
--- a/old_docs/API_docs_v51/methods/channels_editTitle.md
+++ b/old_docs/API_docs_v51/methods/channels_editTitle.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editTitle({channel=InputChannel, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v51/methods/channels_exportInvite.md b/old_docs/API_docs_v51/methods/channels_exportInvite.md
index 0918b3e7..9d578deb 100644
--- a/old_docs/API_docs_v51/methods/channels_exportInvite.md
+++ b/old_docs/API_docs_v51/methods/channels_exportInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ExportedChatInvite = channels.exportInvite({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INVITE_HASH_EXPIRED|The invite link has expired|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
diff --git a/old_docs/API_docs_v51/methods/channels_exportMessageLink.md b/old_docs/API_docs_v51/methods/channels_exportMessageLink.md
index 66cd7584..2e92ee5e 100644
--- a/old_docs/API_docs_v51/methods/channels_exportMessageLink.md
+++ b/old_docs/API_docs_v51/methods/channels_exportMessageLink.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
ExportedMessageLink = channels.exportMessageLink({channel=InputChannel, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v51/methods/channels_getChannels.md b/old_docs/API_docs_v51/methods/channels_getChannels.md
index 78d50641..95d7a188 100644
--- a/old_docs/API_docs_v51/methods/channels_getChannels.md
+++ b/old_docs/API_docs_v51/methods/channels_getChannels.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = channels.getChannels({id={InputChannel}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v51/methods/channels_getFullChannel.md b/old_docs/API_docs_v51/methods/channels_getFullChannel.md
index 45a8ec72..ebd53de4 100644
--- a/old_docs/API_docs_v51/methods/channels_getFullChannel.md
+++ b/old_docs/API_docs_v51/methods/channels_getFullChannel.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->channels->getFullChannel(['channel' => InputChannel, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = channels.getFullChannel({channel=InputChannel, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v51/methods/channels_getMessages.md b/old_docs/API_docs_v51/methods/channels_getMessages.md
index aa85d640..57bcc60f 100644
--- a/old_docs/API_docs_v51/methods/channels_getMessages.md
+++ b/old_docs/API_docs_v51/methods/channels_getMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_Messages = channels.getMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
diff --git a/old_docs/API_docs_v51/methods/channels_getParticipant.md b/old_docs/API_docs_v51/methods/channels_getParticipant.md
index 6633114f..808156fd 100644
--- a/old_docs/API_docs_v51/methods/channels_getParticipant.md
+++ b/old_docs/API_docs_v51/methods/channels_getParticipant.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
channels_ChannelParticipant = channels.getParticipant({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v51/methods/channels_getParticipants.md b/old_docs/API_docs_v51/methods/channels_getParticipants.md
index d4bd8779..21d4a418 100644
--- a/old_docs/API_docs_v51/methods/channels_getParticipants.md
+++ b/old_docs/API_docs_v51/methods/channels_getParticipants.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, filter=ChannelParticipantsFilter, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v51/methods/channels_inviteToChannel.md b/old_docs/API_docs_v51/methods/channels_inviteToChannel.md
index f7093f13..d8c5e88a 100644
--- a/old_docs/API_docs_v51/methods/channels_inviteToChannel.md
+++ b/old_docs/API_docs_v51/methods/channels_inviteToChannel.md
@@ -43,25 +43,25 @@ Or, if you're into Lua:
Updates = channels.inviteToChannel({channel=InputChannel, users={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
-|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_BLOCKED|User blocked|
-|USER_BOT|Bots can only be admins in channels.|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_KICKED|This user was kicked from this supergroup/channel|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
+|400|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_BLOCKED|User blocked|
+|400|USER_BOT|Bots can only be admins in channels.|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_KICKED|This user was kicked from this supergroup/channel|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v51/methods/channels_joinChannel.md b/old_docs/API_docs_v51/methods/channels_joinChannel.md
index b056031a..a4a7c177 100644
--- a/old_docs/API_docs_v51/methods/channels_joinChannel.md
+++ b/old_docs/API_docs_v51/methods/channels_joinChannel.md
@@ -42,15 +42,15 @@ Or, if you're into Lua:
Updates = channels.joinChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
diff --git a/old_docs/API_docs_v51/methods/channels_leaveChannel.md b/old_docs/API_docs_v51/methods/channels_leaveChannel.md
index fdea13ba..6538d443 100644
--- a/old_docs/API_docs_v51/methods/channels_leaveChannel.md
+++ b/old_docs/API_docs_v51/methods/channels_leaveChannel.md
@@ -42,14 +42,14 @@ Or, if you're into Lua:
Updates = channels.leaveChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
-|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
diff --git a/old_docs/API_docs_v51/methods/channels_readHistory.md b/old_docs/API_docs_v51/methods/channels_readHistory.md
index 93dc075f..3532dae0 100644
--- a/old_docs/API_docs_v51/methods/channels_readHistory.md
+++ b/old_docs/API_docs_v51/methods/channels_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readHistory({channel=InputChannel, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v51/methods/channels_reportSpam.md b/old_docs/API_docs_v51/methods/channels_reportSpam.md
index db80676a..7e273cc5 100644
--- a/old_docs/API_docs_v51/methods/channels_reportSpam.md
+++ b/old_docs/API_docs_v51/methods/channels_reportSpam.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
Bool = channels.reportSpam({channel=InputChannel, user_id=InputUser, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
diff --git a/old_docs/API_docs_v51/methods/channels_toggleInvites.md b/old_docs/API_docs_v51/methods/channels_toggleInvites.md
index e5d3fba1..6266d30b 100644
--- a/old_docs/API_docs_v51/methods/channels_toggleInvites.md
+++ b/old_docs/API_docs_v51/methods/channels_toggleInvites.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.toggleInvites({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v51/methods/channels_toggleSignatures.md b/old_docs/API_docs_v51/methods/channels_toggleSignatures.md
index cdfc0fda..f8624946 100644
--- a/old_docs/API_docs_v51/methods/channels_toggleSignatures.md
+++ b/old_docs/API_docs_v51/methods/channels_toggleSignatures.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = channels.toggleSignatures({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v51/methods/channels_updatePinnedMessage.md b/old_docs/API_docs_v51/methods/channels_updatePinnedMessage.md
index 53733a22..37d7c3c0 100644
--- a/old_docs/API_docs_v51/methods/channels_updatePinnedMessage.md
+++ b/old_docs/API_docs_v51/methods/channels_updatePinnedMessage.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = channels.updatePinnedMessage({silent=Bool, channel=InputChannel, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v51/methods/channels_updateUsername.md b/old_docs/API_docs_v51/methods/channels_updateUsername.md
index 677712f9..48d250e6 100644
--- a/old_docs/API_docs_v51/methods/channels_updateUsername.md
+++ b/old_docs/API_docs_v51/methods/channels_updateUsername.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Bool = channels.updateUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_OCCUPIED|The provided username is already occupied|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
diff --git a/old_docs/API_docs_v51/methods/contacts_block.md b/old_docs/API_docs_v51/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v51/methods/contacts_block.md
+++ b/old_docs/API_docs_v51/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v51/methods/contacts_deleteContact.md b/old_docs/API_docs_v51/methods/contacts_deleteContact.md
index ba9569e4..a9321d64 100644
--- a/old_docs/API_docs_v51/methods/contacts_deleteContact.md
+++ b/old_docs/API_docs_v51/methods/contacts_deleteContact.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
contacts_Link = contacts.deleteContact({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v51/methods/contacts_deleteContacts.md b/old_docs/API_docs_v51/methods/contacts_deleteContacts.md
index bfc91fdd..3c8e90f0 100644
--- a/old_docs/API_docs_v51/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v51/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v51/methods/contacts_getStatuses.md b/old_docs/API_docs_v51/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v51/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v51/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v51/methods/contacts_importCard.md b/old_docs/API_docs_v51/methods/contacts_importCard.md
index 15addde1..ed3d17fe 100644
--- a/old_docs/API_docs_v51/methods/contacts_importCard.md
+++ b/old_docs/API_docs_v51/methods/contacts_importCard.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
User = contacts.importCard({export_card={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|EXPORT_CARD_INVALID|Provided card is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EXPORT_CARD_INVALID|Provided card is invalid|
diff --git a/old_docs/API_docs_v51/methods/contacts_resolveUsername.md b/old_docs/API_docs_v51/methods/contacts_resolveUsername.md
index fab56bb1..68f709db 100644
--- a/old_docs/API_docs_v51/methods/contacts_resolveUsername.md
+++ b/old_docs/API_docs_v51/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [contacts\_ResolvedPeer](../types/contacts_ResolvedPeer.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$contacts_ResolvedPeer = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+contacts_ResolvedPeer = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v51/methods/contacts_search.md b/old_docs/API_docs_v51/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v51/methods/contacts_search.md
+++ b/old_docs/API_docs_v51/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v51/methods/contacts_unblock.md b/old_docs/API_docs_v51/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v51/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v51/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v51/methods/help_getConfig.md b/old_docs/API_docs_v51/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v51/methods/help_getConfig.md
+++ b/old_docs/API_docs_v51/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v51/methods/initConnection.md b/old_docs/API_docs_v51/methods/initConnection.md
index 659f4e6b..a41f0c4d 100644
--- a/old_docs/API_docs_v51/methods/initConnection.md
+++ b/old_docs/API_docs_v51/methods/initConnection.md
@@ -47,11 +47,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', lang_code='string', query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v51/methods/invokeWithLayer.md b/old_docs/API_docs_v51/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/old_docs/API_docs_v51/methods/invokeWithLayer.md
+++ b/old_docs/API_docs_v51/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v51/methods/messages_acceptEncryption.md b/old_docs/API_docs_v51/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v51/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v51/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v51/methods/messages_addChatUser.md b/old_docs/API_docs_v51/methods/messages_addChatUser.md
index bc0d6253..b5e164b2 100644
--- a/old_docs/API_docs_v51/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v51/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
Updates = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v51/methods/messages_checkChatInvite.md b/old_docs/API_docs_v51/methods/messages_checkChatInvite.md
index de28b09b..0d13d55e 100644
--- a/old_docs/API_docs_v51/methods/messages_checkChatInvite.md
+++ b/old_docs/API_docs_v51/methods/messages_checkChatInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ChatInvite = messages.checkChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
diff --git a/old_docs/API_docs_v51/methods/messages_createChat.md b/old_docs/API_docs_v51/methods/messages_createChat.md
index 8f6e9672..b2623f1d 100644
--- a/old_docs/API_docs_v51/methods/messages_createChat.md
+++ b/old_docs/API_docs_v51/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v51/methods/messages_deleteChatUser.md b/old_docs/API_docs_v51/methods/messages_deleteChatUser.md
index 63529571..11b9b220 100644
--- a/old_docs/API_docs_v51/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v51/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v51/methods/messages_deleteHistory.md b/old_docs/API_docs_v51/methods/messages_deleteHistory.md
index a906587c..be19b57b 100644
--- a/old_docs/API_docs_v51/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v51/methods/messages_deleteHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v51/methods/messages_deleteMessages.md b/old_docs/API_docs_v51/methods/messages_deleteMessages.md
index 6df3ffec..a0d79592 100644
--- a/old_docs/API_docs_v51/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v51/methods/messages_deleteMessages.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.deleteMessages({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v51/methods/messages_discardEncryption.md b/old_docs/API_docs_v51/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v51/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v51/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v51/methods/messages_editChatAdmin.md b/old_docs/API_docs_v51/methods/messages_editChatAdmin.md
index 2b4dc94c..6f6c1376 100644
--- a/old_docs/API_docs_v51/methods/messages_editChatAdmin.md
+++ b/old_docs/API_docs_v51/methods/messages_editChatAdmin.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.editChatAdmin({chat_id=InputPeer, user_id=InputUser, is_admin=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v51/methods/messages_editChatPhoto.md b/old_docs/API_docs_v51/methods/messages_editChatPhoto.md
index 2a82c232..a21a03b9 100644
--- a/old_docs/API_docs_v51/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v51/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Updates = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v51/methods/messages_editChatTitle.md b/old_docs/API_docs_v51/methods/messages_editChatTitle.md
index 2c338ad6..72f78741 100644
--- a/old_docs/API_docs_v51/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v51/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v51/methods/messages_editInlineBotMessage.md b/old_docs/API_docs_v51/methods/messages_editInlineBotMessage.md
index f22642f2..c274cbb9 100644
--- a/old_docs/API_docs_v51/methods/messages_editInlineBotMessage.md
+++ b/old_docs/API_docs_v51/methods/messages_editInlineBotMessage.md
@@ -95,11 +95,11 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
diff --git a/old_docs/API_docs_v51/methods/messages_editMessage.md b/old_docs/API_docs_v51/methods/messages_editMessage.md
index 05fee4b3..d3ce5261 100644
--- a/old_docs/API_docs_v51/methods/messages_editMessage.md
+++ b/old_docs/API_docs_v51/methods/messages_editMessage.md
@@ -96,20 +96,20 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v51/methods/messages_exportChatInvite.md b/old_docs/API_docs_v51/methods/messages_exportChatInvite.md
index f3449e79..bc6272e4 100644
--- a/old_docs/API_docs_v51/methods/messages_exportChatInvite.md
+++ b/old_docs/API_docs_v51/methods/messages_exportChatInvite.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
ExportedChatInvite = messages.exportChatInvite({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v51/methods/messages_forwardMessage.md b/old_docs/API_docs_v51/methods/messages_forwardMessage.md
index c8e0b18d..95f6d2f3 100644
--- a/old_docs/API_docs_v51/methods/messages_forwardMessage.md
+++ b/old_docs/API_docs_v51/methods/messages_forwardMessage.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Updates = messages.forwardMessage({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|YOU_BLOCKED_USER|You blocked this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|YOU_BLOCKED_USER|You blocked this user|
diff --git a/old_docs/API_docs_v51/methods/messages_forwardMessages.md b/old_docs/API_docs_v51/methods/messages_forwardMessages.md
index b09db49b..395aec91 100644
--- a/old_docs/API_docs_v51/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v51/methods/messages_forwardMessages.md
@@ -47,29 +47,29 @@ Or, if you're into Lua:
Updates = messages.forwardMessages({broadcast=Bool, silent=Bool, background=Bool, from_peer=InputPeer, id={int}, to_peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v51/methods/messages_getBotCallbackAnswer.md b/old_docs/API_docs_v51/methods/messages_getBotCallbackAnswer.md
index 8df04eaf..9666af5f 100644
--- a/old_docs/API_docs_v51/methods/messages_getBotCallbackAnswer.md
+++ b/old_docs/API_docs_v51/methods/messages_getBotCallbackAnswer.md
@@ -44,14 +44,14 @@ Or, if you're into Lua:
messages_BotCallbackAnswer = messages.getBotCallbackAnswer({peer=InputPeer, msg_id=int, data='bytes', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v51/methods/messages_getChats.md b/old_docs/API_docs_v51/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/old_docs/API_docs_v51/methods/messages_getChats.md
+++ b/old_docs/API_docs_v51/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v51/methods/messages_getDhConfig.md b/old_docs/API_docs_v51/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v51/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v51/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v51/methods/messages_getDialogs.md b/old_docs/API_docs_v51/methods/messages_getDialogs.md
index 024b0068..8d8522d5 100644
--- a/old_docs/API_docs_v51/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v51/methods/messages_getDialogs.md
@@ -45,13 +45,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({offset_date=int, offset_id=int, offset_peer=InputPeer, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v51/methods/messages_getDocumentByHash.md b/old_docs/API_docs_v51/methods/messages_getDocumentByHash.md
index 73a235d5..06469c52 100644
--- a/old_docs/API_docs_v51/methods/messages_getDocumentByHash.md
+++ b/old_docs/API_docs_v51/methods/messages_getDocumentByHash.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Document = messages.getDocumentByHash({sha256='bytes', size=int, mime_type='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
diff --git a/old_docs/API_docs_v51/methods/messages_getFullChat.md b/old_docs/API_docs_v51/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v51/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v51/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v51/methods/messages_getHistory.md b/old_docs/API_docs_v51/methods/messages_getHistory.md
index ced9753f..68f746ba 100644
--- a/old_docs/API_docs_v51/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v51/methods/messages_getHistory.md
@@ -48,16 +48,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset_id=int, offset_date=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v51/methods/messages_getInlineBotResults.md b/old_docs/API_docs_v51/methods/messages_getInlineBotResults.md
index 1efcb412..17d678b7 100644
--- a/old_docs/API_docs_v51/methods/messages_getInlineBotResults.md
+++ b/old_docs/API_docs_v51/methods/messages_getInlineBotResults.md
@@ -46,13 +46,13 @@ Or, if you're into Lua:
messages_BotResults = messages.getInlineBotResults({bot=InputUser, peer=InputPeer, geo_point=InputGeoPoint, query='string', offset='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
-|BOT_INVALID|This is not a valid bot|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
+|400|BOT_INVALID|This is not a valid bot|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v51/methods/messages_getMessageEditData.md b/old_docs/API_docs_v51/methods/messages_getMessageEditData.md
index 7f1b7164..b907d78c 100644
--- a/old_docs/API_docs_v51/methods/messages_getMessageEditData.md
+++ b/old_docs/API_docs_v51/methods/messages_getMessageEditData.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_MessageEditData = messages.getMessageEditData({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v51/methods/messages_getMessagesViews.md b/old_docs/API_docs_v51/methods/messages_getMessagesViews.md
index 3d490315..143e568c 100644
--- a/old_docs/API_docs_v51/methods/messages_getMessagesViews.md
+++ b/old_docs/API_docs_v51/methods/messages_getMessagesViews.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
Vector_of_int = messages.getMessagesViews({peer=InputPeer, id={int}, increment=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v51/methods/messages_getPeerSettings.md b/old_docs/API_docs_v51/methods/messages_getPeerSettings.md
index 26dafb9b..69032ff5 100644
--- a/old_docs/API_docs_v51/methods/messages_getPeerSettings.md
+++ b/old_docs/API_docs_v51/methods/messages_getPeerSettings.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
PeerSettings = messages.getPeerSettings({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v51/methods/messages_getStickerSet.md b/old_docs/API_docs_v51/methods/messages_getStickerSet.md
index 57bce84d..487316cc 100644
--- a/old_docs/API_docs_v51/methods/messages_getStickerSet.md
+++ b/old_docs/API_docs_v51/methods/messages_getStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_StickerSet = messages.getStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v51/methods/messages_hideReportSpam.md b/old_docs/API_docs_v51/methods/messages_hideReportSpam.md
index c4bf7399..57756d2e 100644
--- a/old_docs/API_docs_v51/methods/messages_hideReportSpam.md
+++ b/old_docs/API_docs_v51/methods/messages_hideReportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.hideReportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v51/methods/messages_importChatInvite.md b/old_docs/API_docs_v51/methods/messages_importChatInvite.md
index 12120867..101b4b19 100644
--- a/old_docs/API_docs_v51/methods/messages_importChatInvite.md
+++ b/old_docs/API_docs_v51/methods/messages_importChatInvite.md
@@ -42,16 +42,16 @@ Or, if you're into Lua:
Updates = messages.importChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v51/methods/messages_installStickerSet.md b/old_docs/API_docs_v51/methods/messages_installStickerSet.md
index e1f691f2..3803f946 100644
--- a/old_docs/API_docs_v51/methods/messages_installStickerSet.md
+++ b/old_docs/API_docs_v51/methods/messages_installStickerSet.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.installStickerSet({stickerset=InputStickerSet, disabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v51/methods/messages_migrateChat.md b/old_docs/API_docs_v51/methods/messages_migrateChat.md
index a72f4c11..ee4010eb 100644
--- a/old_docs/API_docs_v51/methods/messages_migrateChat.md
+++ b/old_docs/API_docs_v51/methods/messages_migrateChat.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
Updates = messages.migrateChat({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v51/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v51/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v51/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v51/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v51/methods/messages_readHistory.md b/old_docs/API_docs_v51/methods/messages_readHistory.md
index 2ad5cd09..a7f0eca7 100644
--- a/old_docs/API_docs_v51/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v51/methods/messages_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.readHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v51/methods/messages_receivedQueue.md b/old_docs/API_docs_v51/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v51/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v51/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v51/methods/messages_reportSpam.md b/old_docs/API_docs_v51/methods/messages_reportSpam.md
index e92fba13..dc256e55 100644
--- a/old_docs/API_docs_v51/methods/messages_reportSpam.md
+++ b/old_docs/API_docs_v51/methods/messages_reportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v51/methods/messages_requestEncryption.md b/old_docs/API_docs_v51/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v51/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v51/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v51/methods/messages_saveGif.md b/old_docs/API_docs_v51/methods/messages_saveGif.md
index f504ff9e..010e17ec 100644
--- a/old_docs/API_docs_v51/methods/messages_saveGif.md
+++ b/old_docs/API_docs_v51/methods/messages_saveGif.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.saveGif({id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|GIF_ID_INVALID|The provided GIF ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|GIF_ID_INVALID|The provided GIF ID is invalid|
diff --git a/old_docs/API_docs_v51/methods/messages_search.md b/old_docs/API_docs_v51/methods/messages_search.md
index 32efc390..f8941cac 100644
--- a/old_docs/API_docs_v51/methods/messages_search.md
+++ b/old_docs/API_docs_v51/methods/messages_search.md
@@ -50,16 +50,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({important_only=Bool, peer=InputPeer, q='string', filter=MessagesFilter, min_date=int, max_date=int, offset=int, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v51/methods/messages_searchGifs.md b/old_docs/API_docs_v51/methods/messages_searchGifs.md
index 7be4173b..1602d35e 100644
--- a/old_docs/API_docs_v51/methods/messages_searchGifs.md
+++ b/old_docs/API_docs_v51/methods/messages_searchGifs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_FoundGifs = messages.searchGifs({q='string', offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v51/methods/messages_searchGlobal.md b/old_docs/API_docs_v51/methods/messages_searchGlobal.md
index fb38398b..c8da163c 100644
--- a/old_docs/API_docs_v51/methods/messages_searchGlobal.md
+++ b/old_docs/API_docs_v51/methods/messages_searchGlobal.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
messages_Messages = messages.searchGlobal({q='string', offset_date=int, offset_peer=InputPeer, offset_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v51/methods/messages_sendEncrypted.md b/old_docs/API_docs_v51/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v51/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v51/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v51/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v51/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v51/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v51/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v51/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v51/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v51/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v51/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v51/methods/messages_sendInlineBotResult.md b/old_docs/API_docs_v51/methods/messages_sendInlineBotResult.md
index f7f4a1a0..01306570 100644
--- a/old_docs/API_docs_v51/methods/messages_sendInlineBotResult.md
+++ b/old_docs/API_docs_v51/methods/messages_sendInlineBotResult.md
@@ -48,15 +48,15 @@ Or, if you're into Lua:
Updates = messages.sendInlineBotResult({broadcast=Bool, silent=Bool, background=Bool, peer=InputPeer, reply_to_msg_id=int, query_id=long, id='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INLINE_RESULT_EXPIRED|The inline query expired|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|QUERY_ID_EMPTY|The query ID is empty|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INLINE_RESULT_EXPIRED|The inline query expired|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|QUERY_ID_EMPTY|The query ID is empty|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v51/methods/messages_sendMedia.md b/old_docs/API_docs_v51/methods/messages_sendMedia.md
index 1c6c51aa..f7798d28 100644
--- a/old_docs/API_docs_v51/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v51/methods/messages_sendMedia.md
@@ -54,31 +54,31 @@ Updates = messages.sendMedia({broadcast=Bool, silent=Bool, background=Bool, peer
You can provide bot API reply_markup objects here.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v51/methods/messages_sendMessage.md b/old_docs/API_docs_v51/methods/messages_sendMessage.md
index ddbd3ede..1cba9d36 100644
--- a/old_docs/API_docs_v51/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v51/methods/messages_sendMessage.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v51/methods/messages_setBotCallbackAnswer.md b/old_docs/API_docs_v51/methods/messages_setBotCallbackAnswer.md
index 8b0e308f..84ef6d1f 100644
--- a/old_docs/API_docs_v51/methods/messages_setBotCallbackAnswer.md
+++ b/old_docs/API_docs_v51/methods/messages_setBotCallbackAnswer.md
@@ -50,11 +50,11 @@ Bool = messages.setBotCallbackAnswer({alert=Bool, query_id=long, message='string
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|URL_INVALID|Invalid URL provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|URL_INVALID|Invalid URL provided|
diff --git a/old_docs/API_docs_v51/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v51/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v51/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v51/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v51/methods/messages_setInlineBotResults.md b/old_docs/API_docs_v51/methods/messages_setInlineBotResults.md
index ab388e39..df4c30d4 100644
--- a/old_docs/API_docs_v51/methods/messages_setInlineBotResults.md
+++ b/old_docs/API_docs_v51/methods/messages_setInlineBotResults.md
@@ -48,23 +48,23 @@ Or, if you're into Lua:
Bool = messages.setInlineBotResults({gallery=Bool, private=Bool, query_id=long, results={InputBotInlineResult}, cache_time=int, next_offset='string', switch_pm=InlineBotSwitchPM, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ARTICLE_TITLE_EMPTY|The title of the article is empty|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|PHOTO_INVALID|Photo invalid|
-|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
-|QUERY_ID_INVALID|The query ID is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|RESULT_TYPE_INVALID|Result type invalid|
-|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
-|START_PARAM_INVALID|Start parameter invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ARTICLE_TITLE_EMPTY|The title of the article is empty|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|PHOTO_INVALID|Photo invalid|
+|400|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|RESULT_TYPE_INVALID|Result type invalid|
+|400|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
+|400|START_PARAM_INVALID|Start parameter invalid|
+|403|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v51/methods/messages_setTyping.md b/old_docs/API_docs_v51/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v51/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v51/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v51/methods/messages_startBot.md b/old_docs/API_docs_v51/methods/messages_startBot.md
index aa2b2d00..4bf12aa6 100644
--- a/old_docs/API_docs_v51/methods/messages_startBot.md
+++ b/old_docs/API_docs_v51/methods/messages_startBot.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = messages.startBot({bot=InputUser, peer=InputPeer, start_param='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INVALID|This is not a valid bot|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|START_PARAM_EMPTY|The start parameter is empty|
-|START_PARAM_INVALID|Start parameter invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INVALID|This is not a valid bot|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|START_PARAM_EMPTY|The start parameter is empty|
+|400|START_PARAM_INVALID|Start parameter invalid|
diff --git a/old_docs/API_docs_v51/methods/messages_toggleChatAdmins.md b/old_docs/API_docs_v51/methods/messages_toggleChatAdmins.md
index 7851806d..8ea6e65e 100644
--- a/old_docs/API_docs_v51/methods/messages_toggleChatAdmins.md
+++ b/old_docs/API_docs_v51/methods/messages_toggleChatAdmins.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.toggleChatAdmins({chat_id=InputPeer, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v51/methods/messages_uninstallStickerSet.md b/old_docs/API_docs_v51/methods/messages_uninstallStickerSet.md
index 59abc510..6b7a2006 100644
--- a/old_docs/API_docs_v51/methods/messages_uninstallStickerSet.md
+++ b/old_docs/API_docs_v51/methods/messages_uninstallStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.uninstallStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v51/methods/photos_getUserPhotos.md b/old_docs/API_docs_v51/methods/photos_getUserPhotos.md
index 57f5772b..a01f3180 100644
--- a/old_docs/API_docs_v51/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v51/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v51/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v51/methods/photos_updateProfilePhoto.md
index 53d0b12f..db7fe164 100644
--- a/old_docs/API_docs_v51/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v51/methods/photos_updateProfilePhoto.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, crop=InputPhotoCrop, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v51/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v51/methods/photos_uploadProfilePhoto.md
index f140329e..10653c42 100644
--- a/old_docs/API_docs_v51/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v51/methods/photos_uploadProfilePhoto.md
@@ -45,13 +45,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, caption='string', geo_point=InputGeoPoint, crop=InputPhotoCrop, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v51/methods/updates_getChannelDifference.md b/old_docs/API_docs_v51/methods/updates_getChannelDifference.md
index 6fa79529..08d497ed 100644
--- a/old_docs/API_docs_v51/methods/updates_getChannelDifference.md
+++ b/old_docs/API_docs_v51/methods/updates_getChannelDifference.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|filter|[ChannelMessagesFilter](../types/ChannelMessagesFilter.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_ChannelDifference](../types/updates_ChannelDifference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_ChannelDifference = $MadelineProto->updates->getChannelDifference(['channel' => InputChannel, 'filter' => ChannelMessagesFilter, 'pts' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_ChannelDifference = updates.getChannelDifference({channel=InputChannel, filter=ChannelMessagesFilter, pts=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|400|RANGES_INVALID|Invalid range provided|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v51/methods/updates_getDifference.md b/old_docs/API_docs_v51/methods/updates_getDifference.md
index 33e7d7f2..57ea6d99 100644
--- a/old_docs/API_docs_v51/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v51/methods/updates_getDifference.md
@@ -7,8 +7,54 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v51/methods/updates_getState.md b/old_docs/API_docs_v51/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v51/methods/updates_getState.md
+++ b/old_docs/API_docs_v51/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v51/methods/upload_getFile.md b/old_docs/API_docs_v51/methods/upload_getFile.md
index c72e6090..d8b433d6 100644
--- a/old_docs/API_docs_v51/methods/upload_getFile.md
+++ b/old_docs/API_docs_v51/methods/upload_getFile.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v51/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v51/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v51/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v51/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v51/methods/upload_saveFilePart.md b/old_docs/API_docs_v51/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v51/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v51/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v51/methods/users_getFullUser.md b/old_docs/API_docs_v51/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v51/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v51/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v51/methods/users_getUsers.md b/old_docs/API_docs_v51/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v51/methods/users_getUsers.md
+++ b/old_docs/API_docs_v51/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v53/methods/README.md b/old_docs/API_docs_v53/methods/README.md
index d75a18fb..a161eab6 100644
--- a/old_docs/API_docs_v53/methods/README.md
+++ b/old_docs/API_docs_v53/methods/README.md
@@ -30,293 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Add a sticker set: messages.installStickerSet
-
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add phone number as contact: contacts.importContacts
-
-* Add users to channel/supergroup: channels.inviteToChannel
-
-* Allow or disallow any user to invite users to this channel/supergroup: channels.toggleInvites
-
-* Block a user: contacts.block
-
-* Bots only: set the callback answer (after a button was clicked): messages.setBotCallbackAnswer
-
-* Bots only: set the results of an inline query: messages.setInlineBotResults
-
-* Call inline bot: messages.getInlineBotResults
-
-* Change notification settings: account.updateNotifySettings
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if about to edit a message or a media caption: messages.getMessageEditData
-
-* Check if an invitation link is valid: messages.checkChatInvite
-
-* Check if this phone number is registered on telegram: auth.checkPhone
-
-* Check if this username is available: account.checkUsername
-
-* Check if this username is free and can be assigned to a channel/supergroup: channels.checkUsername
-
-* Convert chat to supergroup: messages.migrateChat
-
-* Create a chat (not supergroup): messages.createChat
-
-* Create channel/supergroup: channels.createChannel
-
-* Delete a certain session: account.resetAuthorization
-
-* Delete a channel/supergroup: channels.deleteChannel
-
-* Delete a contact: contacts.deleteContact
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete all messages of a user in a channel/supergroup: channels.deleteUserHistory
-
-* Delete channel/supergroup messages: channels.deleteMessages
-
-* Delete chat history: messages.deleteHistory
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete this account: account.deleteAccount
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Edit a message: messages.editMessage
-
-* Edit a sent inline message: messages.editInlineBotMessage
-
-* Edit admin permissions of a user in a channel/supergroup: channels.editAdmin
-
-* Edit admin permissions: messages.editChatAdmin
-
-* Edit the about text of a channel/supergroup: channels.editAbout
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the photo of a supergroup/channel: channels.editPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Edit the title of a supergroup/channel: channels.editTitle
-
-* Enable all users are admins in normal groups (not supergroups): messages.toggleChatAdmins
-
-* Export chat invite : messages.exportChatInvite
-
-* Export contact as card: contacts.exportCard
-
-* Export the invite link of a channel: channels.exportInvite
-
-* Forward message: messages.forwardMessage
-
-* Forward messages: messages.forwardMessages
-
-* Get a stickerset: messages.getStickerSet
-
-* Get account TTL: account.getAccountTTL
-
-* Get all contacts: contacts.getContacts
-
-* Get all logged-in authorizations: account.getAuthorizations
-
-* Get all message drafts: messages.getAllDrafts
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get and increase message views: messages.getMessagesViews
-
-* Get blocked users: contacts.getBlocked
-
-* Get channel/supergroup messages: channels.getMessages
-
-* Get channel/supergroup participants (you should use `$MadelineProto->get_pwr_chat($id)` instead): channels.getParticipants
-
-* Get dialog info of peers: messages.getPeerDialogs
-
-* Get document by SHA256 hash: messages.getDocumentByHash
-
-* Get info about a certain channel/supergroup participant: channels.getParticipant
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about multiple channels/supergroups: channels.getChannels
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get invitation text: help.getInviteText
-
-* Get messages: messages.getMessages
-
-* Get most used chats: contacts.getTopPeers
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get saved gifs: messages.getSavedGifs
-
-* Get server configuration: help.getConfig
-
-* Get stickers: messages.getStickers
-
-* Get terms of service: help.getTermsOfService
-
-* Get the callback answer of a bot (after clicking a button): messages.getBotCallbackAnswer
-
-* Get the changelog of this app: help.getAppChangelog
-
-* Get the current password: account.getPassword
-
-* Get the link of a message in a channel: channels.exportMessageLink
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Get the settings of apeer: messages.getPeerSettings
-
-* Get webpage preview: messages.getWebPagePreview
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Global message search: messages.searchGlobal
-
-* Hide report spam popup: messages.hideReportSpam
-
-* Import card as contact: contacts.importCard
-
-* Import chat invite: messages.importChatInvite
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Invalidate sent phone code: auth.cancelCode
-
-* Invite friends to telegram!: auth.sendInvites
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invoke with method without returning updates in the socket: invokeWithoutUpdates
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Join a channel/supergroup: channels.joinChannel
-
-* Kick user from channel: channels.kickFromChannel
-
-* Leave a channel/supergroup: channels.leaveChannel
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark channel/supergroup history as read: channels.readHistory
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Register device for push notifications: account.registerDevice
-
-* Remove a sticker set: messages.uninstallStickerSet
-
-* Reorder sticker sets: messages.reorderStickerSets
-
-* Report a message in a supergroup/channel for spam: channels.reportSpam
-
-* Report a peer for spam: messages.reportSpam
-
-* Report for spam: account.reportPeer
-
-* Resend the SMS verification code: auth.resendCode
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Reset top peer rating for a certain category/peer: contacts.resetTopPeerRating
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Save a GIF: messages.saveGif
-
-* Save a message draft: messages.saveDraft
-
-* Search contacts: contacts.search
-
-* Search gifs: messages.searchGifs
-
-* Search peers or messages: messages.search
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message to all users in the chat list: messages.sendBroadcast
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send an email to recover the 2FA password: auth.requestPasswordRecovery
-
-* Send inline bot result obtained with messages.getInlineBotResults to the chat: messages.sendInlineBotResult
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Set account TTL: account.setAccountTTL
-
-* Set privacy settings: account.setPrivacy
-
-* Set the pinned message of a channel/supergroup: channels.updatePinnedMessage
-
-* Start a bot: messages.startBot
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Toggle channel signatures: channels.toggleSignatures
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update profile info: account.updateProfile
-
-* Update the username of a supergroup/channel: channels.updateUsername
-
-* Update this user's username: account.updateUsername
-
-* Upload profile photo: photos.uploadProfilePhoto
-
-* Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
-
diff --git a/old_docs/API_docs_v53/methods/account_changePhone.md b/old_docs/API_docs_v53/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/old_docs/API_docs_v53/methods/account_changePhone.md
+++ b/old_docs/API_docs_v53/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v53/methods/account_checkUsername.md b/old_docs/API_docs_v53/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v53/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v53/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v53/methods/account_getNotifySettings.md b/old_docs/API_docs_v53/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v53/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v53/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v53/methods/account_getPasswordSettings.md b/old_docs/API_docs_v53/methods/account_getPasswordSettings.md
index 8ebb78ee..8f878365 100644
--- a/old_docs/API_docs_v53/methods/account_getPasswordSettings.md
+++ b/old_docs/API_docs_v53/methods/account_getPasswordSettings.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+Get the current 2FA settings
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+### Return type: [account\_PasswordSettings](../types/account_PasswordSettings.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$account_PasswordSettings = $MadelineProto->account->getPasswordSettings(['current_password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+account_PasswordSettings = account.getPasswordSettings({current_password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v53/methods/account_getPrivacy.md b/old_docs/API_docs_v53/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/old_docs/API_docs_v53/methods/account_getPrivacy.md
+++ b/old_docs/API_docs_v53/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v53/methods/account_registerDevice.md b/old_docs/API_docs_v53/methods/account_registerDevice.md
index cf16c2a2..82a6cad9 100644
--- a/old_docs/API_docs_v53/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v53/methods/account_registerDevice.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({token_type=int, token='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v53/methods/account_reportPeer.md b/old_docs/API_docs_v53/methods/account_reportPeer.md
index a203c900..87b080eb 100644
--- a/old_docs/API_docs_v53/methods/account_reportPeer.md
+++ b/old_docs/API_docs_v53/methods/account_reportPeer.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.reportPeer({peer=InputPeer, reason=ReportReason, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v53/methods/account_resetAuthorization.md b/old_docs/API_docs_v53/methods/account_resetAuthorization.md
index c950992c..e8e8ecc4 100644
--- a/old_docs/API_docs_v53/methods/account_resetAuthorization.md
+++ b/old_docs/API_docs_v53/methods/account_resetAuthorization.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.resetAuthorization({hash=long, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v53/methods/account_sendChangePhoneCode.md b/old_docs/API_docs_v53/methods/account_sendChangePhoneCode.md
index d5be60ef..08e5e86e 100644
--- a/old_docs/API_docs_v53/methods/account_sendChangePhoneCode.md
+++ b/old_docs/API_docs_v53/methods/account_sendChangePhoneCode.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendChangePhoneCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v53/methods/account_setAccountTTL.md b/old_docs/API_docs_v53/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/old_docs/API_docs_v53/methods/account_setAccountTTL.md
+++ b/old_docs/API_docs_v53/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/old_docs/API_docs_v53/methods/account_setPrivacy.md b/old_docs/API_docs_v53/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/old_docs/API_docs_v53/methods/account_setPrivacy.md
+++ b/old_docs/API_docs_v53/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v53/methods/account_unregisterDevice.md b/old_docs/API_docs_v53/methods/account_unregisterDevice.md
index 589f48b0..a184da43 100644
--- a/old_docs/API_docs_v53/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v53/methods/account_unregisterDevice.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v53/methods/account_updateNotifySettings.md b/old_docs/API_docs_v53/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v53/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v53/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v53/methods/account_updatePasswordSettings.md b/old_docs/API_docs_v53/methods/account_updatePasswordSettings.md
index 80f27228..68e5da6d 100644
--- a/old_docs/API_docs_v53/methods/account_updatePasswordSettings.md
+++ b/old_docs/API_docs_v53/methods/account_updatePasswordSettings.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+|new\_settings|[account\_PasswordInputSettings](../types/account_PasswordInputSettings.md) | New 2FA settings | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->account->updatePasswordSettings(['current_password_hash' => 'bytes', 'new_settings' => account_PasswordInputSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = account.updatePasswordSettings({current_password_hash='bytes', new_settings=account_PasswordInputSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EMAIL_UNCONFIRMED|Email unconfirmed|
+|400|EMAIL_UNCONFIRMED_X|The provided email isn't confirmed, X is the length of the verification code that was just sent to the email.|
+|400|NEW_SALT_INVALID|The new salt is invalid|
+|400|NEW_SETTINGS_INVALID|The new settings are invalid|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v53/methods/account_updateProfile.md b/old_docs/API_docs_v53/methods/account_updateProfile.md
index af5b6a0f..0d74c5e5 100644
--- a/old_docs/API_docs_v53/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v53/methods/account_updateProfile.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v53/methods/account_updateStatus.md b/old_docs/API_docs_v53/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v53/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v53/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v53/methods/account_updateUsername.md b/old_docs/API_docs_v53/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v53/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v53/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v53/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v53/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v53/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v53/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v53/methods/auth_cancelCode.md b/old_docs/API_docs_v53/methods/auth_cancelCode.md
index fcbd7713..a69e0118 100644
--- a/old_docs/API_docs_v53/methods/auth_cancelCode.md
+++ b/old_docs/API_docs_v53/methods/auth_cancelCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = auth.cancelCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v53/methods/auth_checkPassword.md b/old_docs/API_docs_v53/methods/auth_checkPassword.md
index 8d76c483..db65cb56 100644
--- a/old_docs/API_docs_v53/methods/auth_checkPassword.md
+++ b/old_docs/API_docs_v53/methods/auth_checkPassword.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->checkPassword(['password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.checkPassword({password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v53/methods/auth_checkPhone.md b/old_docs/API_docs_v53/methods/auth_checkPhone.md
index f3e32365..e974ce7f 100644
--- a/old_docs/API_docs_v53/methods/auth_checkPhone.md
+++ b/old_docs/API_docs_v53/methods/auth_checkPhone.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
auth_CheckedPhone = auth.checkPhone({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v53/methods/auth_exportAuthorization.md b/old_docs/API_docs_v53/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v53/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v53/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v53/methods/auth_importAuthorization.md b/old_docs/API_docs_v53/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v53/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v53/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v53/methods/auth_importBotAuthorization.md b/old_docs/API_docs_v53/methods/auth_importBotAuthorization.md
index 1a98c1b9..98a2f8ca 100644
--- a/old_docs/API_docs_v53/methods/auth_importBotAuthorization.md
+++ b/old_docs/API_docs_v53/methods/auth_importBotAuthorization.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|api\_id|[int](../types/int.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_hash|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|bot\_auth\_token|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importBotAuthorization(['api_id' => int, 'api_hash' => 'string', 'bot_auth_token' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importBotAuthorization({api_id=int, api_hash='string', bot_auth_token='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ACCESS_TOKEN_EXPIRED|Access token expired|
+|400|ACCESS_TOKEN_INVALID|Access token invalid|
+|400|API_ID_INVALID|API ID invalid|
diff --git a/old_docs/API_docs_v53/methods/auth_logOut.md b/old_docs/API_docs_v53/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v53/methods/auth_logOut.md
+++ b/old_docs/API_docs_v53/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v53/methods/auth_recoverPassword.md b/old_docs/API_docs_v53/methods/auth_recoverPassword.md
index 83ff5aed..d4bad9c5 100644
--- a/old_docs/API_docs_v53/methods/auth_recoverPassword.md
+++ b/old_docs/API_docs_v53/methods/auth_recoverPassword.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
auth_Authorization = auth.recoverPassword({code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_EMPTY|The provided code is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_EMPTY|The provided code is empty|
diff --git a/old_docs/API_docs_v53/methods/auth_requestPasswordRecovery.md b/old_docs/API_docs_v53/methods/auth_requestPasswordRecovery.md
index 1864bbb0..b6ad57ba 100644
--- a/old_docs/API_docs_v53/methods/auth_requestPasswordRecovery.md
+++ b/old_docs/API_docs_v53/methods/auth_requestPasswordRecovery.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
auth_PasswordRecovery = auth.requestPasswordRecovery({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_EMPTY|The provided password is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_EMPTY|The provided password is empty|
diff --git a/old_docs/API_docs_v53/methods/auth_resendCode.md b/old_docs/API_docs_v53/methods/auth_resendCode.md
index ff7868ea..ec730d75 100644
--- a/old_docs/API_docs_v53/methods/auth_resendCode.md
+++ b/old_docs/API_docs_v53/methods/auth_resendCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = auth.resendCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v53/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v53/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v53/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v53/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v53/methods/auth_sendCode.md b/old_docs/API_docs_v53/methods/auth_sendCode.md
index 9afebb55..1e9d1a4e 100644
--- a/old_docs/API_docs_v53/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v53/methods/auth_sendCode.md
@@ -7,8 +7,59 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|allow\_flashcall|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|current\_number|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['allow_flashcall' => Bool, 'phone_number' => 'string', 'current_number' => Bool, 'api_id' => int, 'api_hash' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, api_id=int, api_hash='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v53/methods/auth_sendInvites.md b/old_docs/API_docs_v53/methods/auth_sendInvites.md
index e10c1109..4c11023e 100644
--- a/old_docs/API_docs_v53/methods/auth_sendInvites.md
+++ b/old_docs/API_docs_v53/methods/auth_sendInvites.md
@@ -49,10 +49,10 @@ Bool = auth.sendInvites({phone_numbers={'string'}, message='string', })
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_EMPTY|The provided message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_EMPTY|The provided message is empty|
diff --git a/old_docs/API_docs_v53/methods/auth_signIn.md b/old_docs/API_docs_v53/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v53/methods/auth_signIn.md
+++ b/old_docs/API_docs_v53/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v53/methods/auth_signUp.md b/old_docs/API_docs_v53/methods/auth_signUp.md
index 15960145..31154486 100644
--- a/old_docs/API_docs_v53/methods/auth_signUp.md
+++ b/old_docs/API_docs_v53/methods/auth_signUp.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', phone_code='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v53/methods/channels_checkUsername.md b/old_docs/API_docs_v53/methods/channels_checkUsername.md
index 483a2f6f..52365d34 100644
--- a/old_docs/API_docs_v53/methods/channels_checkUsername.md
+++ b/old_docs/API_docs_v53/methods/channels_checkUsername.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Bool = channels.checkUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v53/methods/channels_createChannel.md b/old_docs/API_docs_v53/methods/channels_createChannel.md
index b924e6a6..ecaee0ef 100644
--- a/old_docs/API_docs_v53/methods/channels_createChannel.md
+++ b/old_docs/API_docs_v53/methods/channels_createChannel.md
@@ -45,12 +45,12 @@ Or, if you're into Lua:
Updates = channels.createChannel({broadcast=Bool, megagroup=Bool, title='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_TITLE_EMPTY|No chat title provided|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
+|406|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v53/methods/channels_deleteChannel.md b/old_docs/API_docs_v53/methods/channels_deleteChannel.md
index 53a9c23d..1b8d2d48 100644
--- a/old_docs/API_docs_v53/methods/channels_deleteChannel.md
+++ b/old_docs/API_docs_v53/methods/channels_deleteChannel.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Updates = channels.deleteChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v53/methods/channels_deleteMessages.md b/old_docs/API_docs_v53/methods/channels_deleteMessages.md
index f76a9ad1..463ebad0 100644
--- a/old_docs/API_docs_v53/methods/channels_deleteMessages.md
+++ b/old_docs/API_docs_v53/methods/channels_deleteMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_AffectedMessages = channels.deleteMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v53/methods/channels_deleteUserHistory.md b/old_docs/API_docs_v53/methods/channels_deleteUserHistory.md
index 0a4e7d82..33905a7e 100644
--- a/old_docs/API_docs_v53/methods/channels_deleteUserHistory.md
+++ b/old_docs/API_docs_v53/methods/channels_deleteUserHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedHistory = channels.deleteUserHistory({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v53/methods/channels_editAbout.md b/old_docs/API_docs_v53/methods/channels_editAbout.md
index 47111668..d5e090e0 100644
--- a/old_docs/API_docs_v53/methods/channels_editAbout.md
+++ b/old_docs/API_docs_v53/methods/channels_editAbout.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Bool = channels.editAbout({channel=InputChannel, about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
-|CHAT_ABOUT_TOO_LONG|Chat about too long|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
+|400|CHAT_ABOUT_TOO_LONG|Chat about too long|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v53/methods/channels_editAdmin.md b/old_docs/API_docs_v53/methods/channels_editAdmin.md
index 3fbaf64d..229318fb 100644
--- a/old_docs/API_docs_v53/methods/channels_editAdmin.md
+++ b/old_docs/API_docs_v53/methods/channels_editAdmin.md
@@ -44,19 +44,19 @@ Or, if you're into Lua:
Updates = channels.editAdmin({channel=InputChannel, user_id=InputUser, role=ChannelParticipantRole, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ADMINS_TOO_MUCH|There are too many admins|
-|BOT_CHANNELS_NA|Bots can't edit admin privileges|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
-|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ADMINS_TOO_MUCH|There are too many admins|
+|400|BOT_CHANNELS_NA|Bots can't edit admin privileges|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
+|403|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v53/methods/channels_editPhoto.md b/old_docs/API_docs_v53/methods/channels_editPhoto.md
index bec0ba48..caef32d5 100644
--- a/old_docs/API_docs_v53/methods/channels_editPhoto.md
+++ b/old_docs/API_docs_v53/methods/channels_editPhoto.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editPhoto({channel=InputChannel, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|PHOTO_INVALID|Photo invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|PHOTO_INVALID|Photo invalid|
diff --git a/old_docs/API_docs_v53/methods/channels_editTitle.md b/old_docs/API_docs_v53/methods/channels_editTitle.md
index b5efeb39..d7cb33da 100644
--- a/old_docs/API_docs_v53/methods/channels_editTitle.md
+++ b/old_docs/API_docs_v53/methods/channels_editTitle.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editTitle({channel=InputChannel, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v53/methods/channels_exportInvite.md b/old_docs/API_docs_v53/methods/channels_exportInvite.md
index 0918b3e7..9d578deb 100644
--- a/old_docs/API_docs_v53/methods/channels_exportInvite.md
+++ b/old_docs/API_docs_v53/methods/channels_exportInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ExportedChatInvite = channels.exportInvite({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INVITE_HASH_EXPIRED|The invite link has expired|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
diff --git a/old_docs/API_docs_v53/methods/channels_exportMessageLink.md b/old_docs/API_docs_v53/methods/channels_exportMessageLink.md
index 66cd7584..2e92ee5e 100644
--- a/old_docs/API_docs_v53/methods/channels_exportMessageLink.md
+++ b/old_docs/API_docs_v53/methods/channels_exportMessageLink.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
ExportedMessageLink = channels.exportMessageLink({channel=InputChannel, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v53/methods/channels_getChannels.md b/old_docs/API_docs_v53/methods/channels_getChannels.md
index 78d50641..95d7a188 100644
--- a/old_docs/API_docs_v53/methods/channels_getChannels.md
+++ b/old_docs/API_docs_v53/methods/channels_getChannels.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = channels.getChannels({id={InputChannel}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v53/methods/channels_getFullChannel.md b/old_docs/API_docs_v53/methods/channels_getFullChannel.md
index 45a8ec72..ebd53de4 100644
--- a/old_docs/API_docs_v53/methods/channels_getFullChannel.md
+++ b/old_docs/API_docs_v53/methods/channels_getFullChannel.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->channels->getFullChannel(['channel' => InputChannel, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = channels.getFullChannel({channel=InputChannel, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v53/methods/channels_getMessages.md b/old_docs/API_docs_v53/methods/channels_getMessages.md
index aa85d640..57bcc60f 100644
--- a/old_docs/API_docs_v53/methods/channels_getMessages.md
+++ b/old_docs/API_docs_v53/methods/channels_getMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_Messages = channels.getMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
diff --git a/old_docs/API_docs_v53/methods/channels_getParticipant.md b/old_docs/API_docs_v53/methods/channels_getParticipant.md
index 6633114f..808156fd 100644
--- a/old_docs/API_docs_v53/methods/channels_getParticipant.md
+++ b/old_docs/API_docs_v53/methods/channels_getParticipant.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
channels_ChannelParticipant = channels.getParticipant({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v53/methods/channels_getParticipants.md b/old_docs/API_docs_v53/methods/channels_getParticipants.md
index d4bd8779..21d4a418 100644
--- a/old_docs/API_docs_v53/methods/channels_getParticipants.md
+++ b/old_docs/API_docs_v53/methods/channels_getParticipants.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, filter=ChannelParticipantsFilter, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v53/methods/channels_inviteToChannel.md b/old_docs/API_docs_v53/methods/channels_inviteToChannel.md
index f7093f13..d8c5e88a 100644
--- a/old_docs/API_docs_v53/methods/channels_inviteToChannel.md
+++ b/old_docs/API_docs_v53/methods/channels_inviteToChannel.md
@@ -43,25 +43,25 @@ Or, if you're into Lua:
Updates = channels.inviteToChannel({channel=InputChannel, users={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
-|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_BLOCKED|User blocked|
-|USER_BOT|Bots can only be admins in channels.|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_KICKED|This user was kicked from this supergroup/channel|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
+|400|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_BLOCKED|User blocked|
+|400|USER_BOT|Bots can only be admins in channels.|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_KICKED|This user was kicked from this supergroup/channel|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v53/methods/channels_joinChannel.md b/old_docs/API_docs_v53/methods/channels_joinChannel.md
index b056031a..a4a7c177 100644
--- a/old_docs/API_docs_v53/methods/channels_joinChannel.md
+++ b/old_docs/API_docs_v53/methods/channels_joinChannel.md
@@ -42,15 +42,15 @@ Or, if you're into Lua:
Updates = channels.joinChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
diff --git a/old_docs/API_docs_v53/methods/channels_leaveChannel.md b/old_docs/API_docs_v53/methods/channels_leaveChannel.md
index fdea13ba..6538d443 100644
--- a/old_docs/API_docs_v53/methods/channels_leaveChannel.md
+++ b/old_docs/API_docs_v53/methods/channels_leaveChannel.md
@@ -42,14 +42,14 @@ Or, if you're into Lua:
Updates = channels.leaveChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
-|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
diff --git a/old_docs/API_docs_v53/methods/channels_readHistory.md b/old_docs/API_docs_v53/methods/channels_readHistory.md
index 93dc075f..3532dae0 100644
--- a/old_docs/API_docs_v53/methods/channels_readHistory.md
+++ b/old_docs/API_docs_v53/methods/channels_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readHistory({channel=InputChannel, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v53/methods/channels_reportSpam.md b/old_docs/API_docs_v53/methods/channels_reportSpam.md
index db80676a..7e273cc5 100644
--- a/old_docs/API_docs_v53/methods/channels_reportSpam.md
+++ b/old_docs/API_docs_v53/methods/channels_reportSpam.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
Bool = channels.reportSpam({channel=InputChannel, user_id=InputUser, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
diff --git a/old_docs/API_docs_v53/methods/channels_toggleInvites.md b/old_docs/API_docs_v53/methods/channels_toggleInvites.md
index e5d3fba1..6266d30b 100644
--- a/old_docs/API_docs_v53/methods/channels_toggleInvites.md
+++ b/old_docs/API_docs_v53/methods/channels_toggleInvites.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.toggleInvites({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v53/methods/channels_toggleSignatures.md b/old_docs/API_docs_v53/methods/channels_toggleSignatures.md
index cdfc0fda..f8624946 100644
--- a/old_docs/API_docs_v53/methods/channels_toggleSignatures.md
+++ b/old_docs/API_docs_v53/methods/channels_toggleSignatures.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = channels.toggleSignatures({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v53/methods/channels_updatePinnedMessage.md b/old_docs/API_docs_v53/methods/channels_updatePinnedMessage.md
index 53733a22..37d7c3c0 100644
--- a/old_docs/API_docs_v53/methods/channels_updatePinnedMessage.md
+++ b/old_docs/API_docs_v53/methods/channels_updatePinnedMessage.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = channels.updatePinnedMessage({silent=Bool, channel=InputChannel, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v53/methods/channels_updateUsername.md b/old_docs/API_docs_v53/methods/channels_updateUsername.md
index 677712f9..48d250e6 100644
--- a/old_docs/API_docs_v53/methods/channels_updateUsername.md
+++ b/old_docs/API_docs_v53/methods/channels_updateUsername.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Bool = channels.updateUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_OCCUPIED|The provided username is already occupied|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
diff --git a/old_docs/API_docs_v53/methods/contacts_block.md b/old_docs/API_docs_v53/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v53/methods/contacts_block.md
+++ b/old_docs/API_docs_v53/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v53/methods/contacts_deleteContact.md b/old_docs/API_docs_v53/methods/contacts_deleteContact.md
index ba9569e4..a9321d64 100644
--- a/old_docs/API_docs_v53/methods/contacts_deleteContact.md
+++ b/old_docs/API_docs_v53/methods/contacts_deleteContact.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
contacts_Link = contacts.deleteContact({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v53/methods/contacts_deleteContacts.md b/old_docs/API_docs_v53/methods/contacts_deleteContacts.md
index bfc91fdd..3c8e90f0 100644
--- a/old_docs/API_docs_v53/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v53/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v53/methods/contacts_getStatuses.md b/old_docs/API_docs_v53/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v53/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v53/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v53/methods/contacts_getTopPeers.md b/old_docs/API_docs_v53/methods/contacts_getTopPeers.md
index 0552f184..1aba4f85 100644
--- a/old_docs/API_docs_v53/methods/contacts_getTopPeers.md
+++ b/old_docs/API_docs_v53/methods/contacts_getTopPeers.md
@@ -49,10 +49,10 @@ Or, if you're into Lua:
contacts_TopPeers = contacts.getTopPeers({correspondents=Bool, bots_pm=Bool, bots_inline=Bool, groups=Bool, channels=Bool, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TYPES_EMPTY|No top peer type was provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TYPES_EMPTY|No top peer type was provided|
diff --git a/old_docs/API_docs_v53/methods/contacts_importCard.md b/old_docs/API_docs_v53/methods/contacts_importCard.md
index 15addde1..ed3d17fe 100644
--- a/old_docs/API_docs_v53/methods/contacts_importCard.md
+++ b/old_docs/API_docs_v53/methods/contacts_importCard.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
User = contacts.importCard({export_card={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|EXPORT_CARD_INVALID|Provided card is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EXPORT_CARD_INVALID|Provided card is invalid|
diff --git a/old_docs/API_docs_v53/methods/contacts_resetTopPeerRating.md b/old_docs/API_docs_v53/methods/contacts_resetTopPeerRating.md
index 43cf1685..787be177 100644
--- a/old_docs/API_docs_v53/methods/contacts_resetTopPeerRating.md
+++ b/old_docs/API_docs_v53/methods/contacts_resetTopPeerRating.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = contacts.resetTopPeerRating({category=TopPeerCategory, peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v53/methods/contacts_resolveUsername.md b/old_docs/API_docs_v53/methods/contacts_resolveUsername.md
index fab56bb1..68f709db 100644
--- a/old_docs/API_docs_v53/methods/contacts_resolveUsername.md
+++ b/old_docs/API_docs_v53/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [contacts\_ResolvedPeer](../types/contacts_ResolvedPeer.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$contacts_ResolvedPeer = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+contacts_ResolvedPeer = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v53/methods/contacts_search.md b/old_docs/API_docs_v53/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v53/methods/contacts_search.md
+++ b/old_docs/API_docs_v53/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v53/methods/contacts_unblock.md b/old_docs/API_docs_v53/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v53/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v53/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v53/methods/help_getConfig.md b/old_docs/API_docs_v53/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v53/methods/help_getConfig.md
+++ b/old_docs/API_docs_v53/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v53/methods/initConnection.md b/old_docs/API_docs_v53/methods/initConnection.md
index 659f4e6b..a41f0c4d 100644
--- a/old_docs/API_docs_v53/methods/initConnection.md
+++ b/old_docs/API_docs_v53/methods/initConnection.md
@@ -47,11 +47,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', lang_code='string', query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v53/methods/invokeWithLayer.md b/old_docs/API_docs_v53/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/old_docs/API_docs_v53/methods/invokeWithLayer.md
+++ b/old_docs/API_docs_v53/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v53/methods/messages_acceptEncryption.md b/old_docs/API_docs_v53/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v53/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v53/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v53/methods/messages_addChatUser.md b/old_docs/API_docs_v53/methods/messages_addChatUser.md
index bc0d6253..b5e164b2 100644
--- a/old_docs/API_docs_v53/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v53/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
Updates = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v53/methods/messages_checkChatInvite.md b/old_docs/API_docs_v53/methods/messages_checkChatInvite.md
index de28b09b..0d13d55e 100644
--- a/old_docs/API_docs_v53/methods/messages_checkChatInvite.md
+++ b/old_docs/API_docs_v53/methods/messages_checkChatInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ChatInvite = messages.checkChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
diff --git a/old_docs/API_docs_v53/methods/messages_createChat.md b/old_docs/API_docs_v53/methods/messages_createChat.md
index 8f6e9672..b2623f1d 100644
--- a/old_docs/API_docs_v53/methods/messages_createChat.md
+++ b/old_docs/API_docs_v53/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v53/methods/messages_deleteChatUser.md b/old_docs/API_docs_v53/methods/messages_deleteChatUser.md
index 63529571..11b9b220 100644
--- a/old_docs/API_docs_v53/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v53/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v53/methods/messages_deleteHistory.md b/old_docs/API_docs_v53/methods/messages_deleteHistory.md
index 2ade177e..338c2cdf 100644
--- a/old_docs/API_docs_v53/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v53/methods/messages_deleteHistory.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({just_clear=Bool, peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v53/methods/messages_deleteMessages.md b/old_docs/API_docs_v53/methods/messages_deleteMessages.md
index 6df3ffec..a0d79592 100644
--- a/old_docs/API_docs_v53/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v53/methods/messages_deleteMessages.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.deleteMessages({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v53/methods/messages_discardEncryption.md b/old_docs/API_docs_v53/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v53/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v53/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v53/methods/messages_editChatAdmin.md b/old_docs/API_docs_v53/methods/messages_editChatAdmin.md
index 2b4dc94c..6f6c1376 100644
--- a/old_docs/API_docs_v53/methods/messages_editChatAdmin.md
+++ b/old_docs/API_docs_v53/methods/messages_editChatAdmin.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.editChatAdmin({chat_id=InputPeer, user_id=InputUser, is_admin=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v53/methods/messages_editChatPhoto.md b/old_docs/API_docs_v53/methods/messages_editChatPhoto.md
index 2a82c232..a21a03b9 100644
--- a/old_docs/API_docs_v53/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v53/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Updates = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v53/methods/messages_editChatTitle.md b/old_docs/API_docs_v53/methods/messages_editChatTitle.md
index 2c338ad6..72f78741 100644
--- a/old_docs/API_docs_v53/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v53/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v53/methods/messages_editInlineBotMessage.md b/old_docs/API_docs_v53/methods/messages_editInlineBotMessage.md
index f22642f2..c274cbb9 100644
--- a/old_docs/API_docs_v53/methods/messages_editInlineBotMessage.md
+++ b/old_docs/API_docs_v53/methods/messages_editInlineBotMessage.md
@@ -95,11 +95,11 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
diff --git a/old_docs/API_docs_v53/methods/messages_editMessage.md b/old_docs/API_docs_v53/methods/messages_editMessage.md
index 05fee4b3..d3ce5261 100644
--- a/old_docs/API_docs_v53/methods/messages_editMessage.md
+++ b/old_docs/API_docs_v53/methods/messages_editMessage.md
@@ -96,20 +96,20 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v53/methods/messages_exportChatInvite.md b/old_docs/API_docs_v53/methods/messages_exportChatInvite.md
index f3449e79..bc6272e4 100644
--- a/old_docs/API_docs_v53/methods/messages_exportChatInvite.md
+++ b/old_docs/API_docs_v53/methods/messages_exportChatInvite.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
ExportedChatInvite = messages.exportChatInvite({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v53/methods/messages_forwardMessage.md b/old_docs/API_docs_v53/methods/messages_forwardMessage.md
index c8e0b18d..95f6d2f3 100644
--- a/old_docs/API_docs_v53/methods/messages_forwardMessage.md
+++ b/old_docs/API_docs_v53/methods/messages_forwardMessage.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Updates = messages.forwardMessage({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|YOU_BLOCKED_USER|You blocked this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|YOU_BLOCKED_USER|You blocked this user|
diff --git a/old_docs/API_docs_v53/methods/messages_forwardMessages.md b/old_docs/API_docs_v53/methods/messages_forwardMessages.md
index b4f09a8b..1999e99f 100644
--- a/old_docs/API_docs_v53/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v53/methods/messages_forwardMessages.md
@@ -46,29 +46,29 @@ Or, if you're into Lua:
Updates = messages.forwardMessages({silent=Bool, background=Bool, from_peer=InputPeer, id={int}, to_peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v53/methods/messages_getBotCallbackAnswer.md b/old_docs/API_docs_v53/methods/messages_getBotCallbackAnswer.md
index 8df04eaf..9666af5f 100644
--- a/old_docs/API_docs_v53/methods/messages_getBotCallbackAnswer.md
+++ b/old_docs/API_docs_v53/methods/messages_getBotCallbackAnswer.md
@@ -44,14 +44,14 @@ Or, if you're into Lua:
messages_BotCallbackAnswer = messages.getBotCallbackAnswer({peer=InputPeer, msg_id=int, data='bytes', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v53/methods/messages_getChats.md b/old_docs/API_docs_v53/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/old_docs/API_docs_v53/methods/messages_getChats.md
+++ b/old_docs/API_docs_v53/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v53/methods/messages_getDhConfig.md b/old_docs/API_docs_v53/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v53/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v53/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v53/methods/messages_getDialogs.md b/old_docs/API_docs_v53/methods/messages_getDialogs.md
index 024b0068..8d8522d5 100644
--- a/old_docs/API_docs_v53/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v53/methods/messages_getDialogs.md
@@ -45,13 +45,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({offset_date=int, offset_id=int, offset_peer=InputPeer, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v53/methods/messages_getDocumentByHash.md b/old_docs/API_docs_v53/methods/messages_getDocumentByHash.md
index 73a235d5..06469c52 100644
--- a/old_docs/API_docs_v53/methods/messages_getDocumentByHash.md
+++ b/old_docs/API_docs_v53/methods/messages_getDocumentByHash.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Document = messages.getDocumentByHash({sha256='bytes', size=int, mime_type='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
diff --git a/old_docs/API_docs_v53/methods/messages_getFullChat.md b/old_docs/API_docs_v53/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v53/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v53/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v53/methods/messages_getHistory.md b/old_docs/API_docs_v53/methods/messages_getHistory.md
index ced9753f..68f746ba 100644
--- a/old_docs/API_docs_v53/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v53/methods/messages_getHistory.md
@@ -48,16 +48,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset_id=int, offset_date=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v53/methods/messages_getInlineBotResults.md b/old_docs/API_docs_v53/methods/messages_getInlineBotResults.md
index 1efcb412..17d678b7 100644
--- a/old_docs/API_docs_v53/methods/messages_getInlineBotResults.md
+++ b/old_docs/API_docs_v53/methods/messages_getInlineBotResults.md
@@ -46,13 +46,13 @@ Or, if you're into Lua:
messages_BotResults = messages.getInlineBotResults({bot=InputUser, peer=InputPeer, geo_point=InputGeoPoint, query='string', offset='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
-|BOT_INVALID|This is not a valid bot|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
+|400|BOT_INVALID|This is not a valid bot|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v53/methods/messages_getMessageEditData.md b/old_docs/API_docs_v53/methods/messages_getMessageEditData.md
index 7f1b7164..b907d78c 100644
--- a/old_docs/API_docs_v53/methods/messages_getMessageEditData.md
+++ b/old_docs/API_docs_v53/methods/messages_getMessageEditData.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_MessageEditData = messages.getMessageEditData({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v53/methods/messages_getMessagesViews.md b/old_docs/API_docs_v53/methods/messages_getMessagesViews.md
index 3d490315..143e568c 100644
--- a/old_docs/API_docs_v53/methods/messages_getMessagesViews.md
+++ b/old_docs/API_docs_v53/methods/messages_getMessagesViews.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
Vector_of_int = messages.getMessagesViews({peer=InputPeer, id={int}, increment=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v53/methods/messages_getPeerDialogs.md b/old_docs/API_docs_v53/methods/messages_getPeerDialogs.md
index 6811001a..0c770183 100644
--- a/old_docs/API_docs_v53/methods/messages_getPeerDialogs.md
+++ b/old_docs/API_docs_v53/methods/messages_getPeerDialogs.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPeerDialogs({peers={InputPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v53/methods/messages_getPeerSettings.md b/old_docs/API_docs_v53/methods/messages_getPeerSettings.md
index 26dafb9b..69032ff5 100644
--- a/old_docs/API_docs_v53/methods/messages_getPeerSettings.md
+++ b/old_docs/API_docs_v53/methods/messages_getPeerSettings.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
PeerSettings = messages.getPeerSettings({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v53/methods/messages_getStickerSet.md b/old_docs/API_docs_v53/methods/messages_getStickerSet.md
index 57bce84d..487316cc 100644
--- a/old_docs/API_docs_v53/methods/messages_getStickerSet.md
+++ b/old_docs/API_docs_v53/methods/messages_getStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_StickerSet = messages.getStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v53/methods/messages_hideReportSpam.md b/old_docs/API_docs_v53/methods/messages_hideReportSpam.md
index c4bf7399..57756d2e 100644
--- a/old_docs/API_docs_v53/methods/messages_hideReportSpam.md
+++ b/old_docs/API_docs_v53/methods/messages_hideReportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.hideReportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v53/methods/messages_importChatInvite.md b/old_docs/API_docs_v53/methods/messages_importChatInvite.md
index 12120867..101b4b19 100644
--- a/old_docs/API_docs_v53/methods/messages_importChatInvite.md
+++ b/old_docs/API_docs_v53/methods/messages_importChatInvite.md
@@ -42,16 +42,16 @@ Or, if you're into Lua:
Updates = messages.importChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v53/methods/messages_installStickerSet.md b/old_docs/API_docs_v53/methods/messages_installStickerSet.md
index e1f691f2..3803f946 100644
--- a/old_docs/API_docs_v53/methods/messages_installStickerSet.md
+++ b/old_docs/API_docs_v53/methods/messages_installStickerSet.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.installStickerSet({stickerset=InputStickerSet, disabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v53/methods/messages_migrateChat.md b/old_docs/API_docs_v53/methods/messages_migrateChat.md
index a72f4c11..ee4010eb 100644
--- a/old_docs/API_docs_v53/methods/messages_migrateChat.md
+++ b/old_docs/API_docs_v53/methods/messages_migrateChat.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
Updates = messages.migrateChat({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v53/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v53/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v53/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v53/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v53/methods/messages_readHistory.md b/old_docs/API_docs_v53/methods/messages_readHistory.md
index 2ad5cd09..a7f0eca7 100644
--- a/old_docs/API_docs_v53/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v53/methods/messages_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.readHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v53/methods/messages_receivedQueue.md b/old_docs/API_docs_v53/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v53/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v53/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v53/methods/messages_reportSpam.md b/old_docs/API_docs_v53/methods/messages_reportSpam.md
index e92fba13..dc256e55 100644
--- a/old_docs/API_docs_v53/methods/messages_reportSpam.md
+++ b/old_docs/API_docs_v53/methods/messages_reportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v53/methods/messages_requestEncryption.md b/old_docs/API_docs_v53/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v53/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v53/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v53/methods/messages_saveDraft.md b/old_docs/API_docs_v53/methods/messages_saveDraft.md
index 791ce234..ea6d407e 100644
--- a/old_docs/API_docs_v53/methods/messages_saveDraft.md
+++ b/old_docs/API_docs_v53/methods/messages_saveDraft.md
@@ -89,10 +89,10 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v53/methods/messages_saveGif.md b/old_docs/API_docs_v53/methods/messages_saveGif.md
index f504ff9e..010e17ec 100644
--- a/old_docs/API_docs_v53/methods/messages_saveGif.md
+++ b/old_docs/API_docs_v53/methods/messages_saveGif.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.saveGif({id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|GIF_ID_INVALID|The provided GIF ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|GIF_ID_INVALID|The provided GIF ID is invalid|
diff --git a/old_docs/API_docs_v53/methods/messages_search.md b/old_docs/API_docs_v53/methods/messages_search.md
index 5f5480cc..dc1b6934 100644
--- a/old_docs/API_docs_v53/methods/messages_search.md
+++ b/old_docs/API_docs_v53/methods/messages_search.md
@@ -49,16 +49,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({peer=InputPeer, q='string', filter=MessagesFilter, min_date=int, max_date=int, offset=int, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v53/methods/messages_searchGifs.md b/old_docs/API_docs_v53/methods/messages_searchGifs.md
index 7be4173b..1602d35e 100644
--- a/old_docs/API_docs_v53/methods/messages_searchGifs.md
+++ b/old_docs/API_docs_v53/methods/messages_searchGifs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_FoundGifs = messages.searchGifs({q='string', offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v53/methods/messages_searchGlobal.md b/old_docs/API_docs_v53/methods/messages_searchGlobal.md
index fb38398b..c8da163c 100644
--- a/old_docs/API_docs_v53/methods/messages_searchGlobal.md
+++ b/old_docs/API_docs_v53/methods/messages_searchGlobal.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
messages_Messages = messages.searchGlobal({q='string', offset_date=int, offset_peer=InputPeer, offset_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v53/methods/messages_sendEncrypted.md b/old_docs/API_docs_v53/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v53/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v53/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v53/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v53/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v53/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v53/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v53/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v53/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v53/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v53/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v53/methods/messages_sendInlineBotResult.md b/old_docs/API_docs_v53/methods/messages_sendInlineBotResult.md
index 9ffa02ae..a2b57f4d 100644
--- a/old_docs/API_docs_v53/methods/messages_sendInlineBotResult.md
+++ b/old_docs/API_docs_v53/methods/messages_sendInlineBotResult.md
@@ -48,15 +48,15 @@ Or, if you're into Lua:
Updates = messages.sendInlineBotResult({silent=Bool, background=Bool, clear_draft=Bool, peer=InputPeer, reply_to_msg_id=int, query_id=long, id='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INLINE_RESULT_EXPIRED|The inline query expired|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|QUERY_ID_EMPTY|The query ID is empty|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INLINE_RESULT_EXPIRED|The inline query expired|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|QUERY_ID_EMPTY|The query ID is empty|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v53/methods/messages_sendMedia.md b/old_docs/API_docs_v53/methods/messages_sendMedia.md
index 89dc5572..9bfd0743 100644
--- a/old_docs/API_docs_v53/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v53/methods/messages_sendMedia.md
@@ -54,31 +54,31 @@ Updates = messages.sendMedia({silent=Bool, background=Bool, clear_draft=Bool, pe
You can provide bot API reply_markup objects here.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v53/methods/messages_sendMessage.md b/old_docs/API_docs_v53/methods/messages_sendMessage.md
index 5641ebc3..e0ab305d 100644
--- a/old_docs/API_docs_v53/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v53/methods/messages_sendMessage.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v53/methods/messages_setBotCallbackAnswer.md b/old_docs/API_docs_v53/methods/messages_setBotCallbackAnswer.md
index 8b0e308f..84ef6d1f 100644
--- a/old_docs/API_docs_v53/methods/messages_setBotCallbackAnswer.md
+++ b/old_docs/API_docs_v53/methods/messages_setBotCallbackAnswer.md
@@ -50,11 +50,11 @@ Bool = messages.setBotCallbackAnswer({alert=Bool, query_id=long, message='string
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|URL_INVALID|Invalid URL provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|URL_INVALID|Invalid URL provided|
diff --git a/old_docs/API_docs_v53/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v53/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v53/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v53/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v53/methods/messages_setInlineBotResults.md b/old_docs/API_docs_v53/methods/messages_setInlineBotResults.md
index ab388e39..df4c30d4 100644
--- a/old_docs/API_docs_v53/methods/messages_setInlineBotResults.md
+++ b/old_docs/API_docs_v53/methods/messages_setInlineBotResults.md
@@ -48,23 +48,23 @@ Or, if you're into Lua:
Bool = messages.setInlineBotResults({gallery=Bool, private=Bool, query_id=long, results={InputBotInlineResult}, cache_time=int, next_offset='string', switch_pm=InlineBotSwitchPM, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ARTICLE_TITLE_EMPTY|The title of the article is empty|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|PHOTO_INVALID|Photo invalid|
-|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
-|QUERY_ID_INVALID|The query ID is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|RESULT_TYPE_INVALID|Result type invalid|
-|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
-|START_PARAM_INVALID|Start parameter invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ARTICLE_TITLE_EMPTY|The title of the article is empty|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|PHOTO_INVALID|Photo invalid|
+|400|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|RESULT_TYPE_INVALID|Result type invalid|
+|400|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
+|400|START_PARAM_INVALID|Start parameter invalid|
+|403|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v53/methods/messages_setTyping.md b/old_docs/API_docs_v53/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v53/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v53/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v53/methods/messages_startBot.md b/old_docs/API_docs_v53/methods/messages_startBot.md
index aa2b2d00..4bf12aa6 100644
--- a/old_docs/API_docs_v53/methods/messages_startBot.md
+++ b/old_docs/API_docs_v53/methods/messages_startBot.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = messages.startBot({bot=InputUser, peer=InputPeer, start_param='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INVALID|This is not a valid bot|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|START_PARAM_EMPTY|The start parameter is empty|
-|START_PARAM_INVALID|Start parameter invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INVALID|This is not a valid bot|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|START_PARAM_EMPTY|The start parameter is empty|
+|400|START_PARAM_INVALID|Start parameter invalid|
diff --git a/old_docs/API_docs_v53/methods/messages_toggleChatAdmins.md b/old_docs/API_docs_v53/methods/messages_toggleChatAdmins.md
index 7851806d..8ea6e65e 100644
--- a/old_docs/API_docs_v53/methods/messages_toggleChatAdmins.md
+++ b/old_docs/API_docs_v53/methods/messages_toggleChatAdmins.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.toggleChatAdmins({chat_id=InputPeer, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v53/methods/messages_uninstallStickerSet.md b/old_docs/API_docs_v53/methods/messages_uninstallStickerSet.md
index 59abc510..6b7a2006 100644
--- a/old_docs/API_docs_v53/methods/messages_uninstallStickerSet.md
+++ b/old_docs/API_docs_v53/methods/messages_uninstallStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.uninstallStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v53/methods/photos_getUserPhotos.md b/old_docs/API_docs_v53/methods/photos_getUserPhotos.md
index 57f5772b..a01f3180 100644
--- a/old_docs/API_docs_v53/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v53/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v53/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v53/methods/photos_updateProfilePhoto.md
index 53d0b12f..db7fe164 100644
--- a/old_docs/API_docs_v53/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v53/methods/photos_updateProfilePhoto.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, crop=InputPhotoCrop, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v53/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v53/methods/photos_uploadProfilePhoto.md
index f140329e..10653c42 100644
--- a/old_docs/API_docs_v53/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v53/methods/photos_uploadProfilePhoto.md
@@ -45,13 +45,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, caption='string', geo_point=InputGeoPoint, crop=InputPhotoCrop, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v53/methods/updates_getChannelDifference.md b/old_docs/API_docs_v53/methods/updates_getChannelDifference.md
index 6fa79529..08d497ed 100644
--- a/old_docs/API_docs_v53/methods/updates_getChannelDifference.md
+++ b/old_docs/API_docs_v53/methods/updates_getChannelDifference.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|filter|[ChannelMessagesFilter](../types/ChannelMessagesFilter.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_ChannelDifference](../types/updates_ChannelDifference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_ChannelDifference = $MadelineProto->updates->getChannelDifference(['channel' => InputChannel, 'filter' => ChannelMessagesFilter, 'pts' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_ChannelDifference = updates.getChannelDifference({channel=InputChannel, filter=ChannelMessagesFilter, pts=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|400|RANGES_INVALID|Invalid range provided|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v53/methods/updates_getDifference.md b/old_docs/API_docs_v53/methods/updates_getDifference.md
index 33e7d7f2..57ea6d99 100644
--- a/old_docs/API_docs_v53/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v53/methods/updates_getDifference.md
@@ -7,8 +7,54 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v53/methods/updates_getState.md b/old_docs/API_docs_v53/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v53/methods/updates_getState.md
+++ b/old_docs/API_docs_v53/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v53/methods/upload_getFile.md b/old_docs/API_docs_v53/methods/upload_getFile.md
index c72e6090..d8b433d6 100644
--- a/old_docs/API_docs_v53/methods/upload_getFile.md
+++ b/old_docs/API_docs_v53/methods/upload_getFile.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v53/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v53/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v53/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v53/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v53/methods/upload_saveFilePart.md b/old_docs/API_docs_v53/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v53/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v53/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v53/methods/users_getFullUser.md b/old_docs/API_docs_v53/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v53/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v53/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v53/methods/users_getUsers.md b/old_docs/API_docs_v53/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v53/methods/users_getUsers.md
+++ b/old_docs/API_docs_v53/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v55/methods/README.md b/old_docs/API_docs_v55/methods/README.md
index a7be5fe8..a161eab6 100644
--- a/old_docs/API_docs_v55/methods/README.md
+++ b/old_docs/API_docs_v55/methods/README.md
@@ -30,311 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Add a sticker set: messages.installStickerSet
-
-* Add a sticker to recent stickers: messages.saveRecentSticker
-
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add phone number as contact: contacts.importContacts
-
-* Add users to channel/supergroup: channels.inviteToChannel
-
-* Allow or disallow any user to invite users to this channel/supergroup: channels.toggleInvites
-
-* Block a user: contacts.block
-
-* Bots only: set the callback answer (after a button was clicked): messages.setBotCallbackAnswer
-
-* Bots only: set the results of an inline query: messages.setInlineBotResults
-
-* Call inline bot: messages.getInlineBotResults
-
-* Change notification settings: account.updateNotifySettings
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if about to edit a message or a media caption: messages.getMessageEditData
-
-* Check if an invitation link is valid: messages.checkChatInvite
-
-* Check if this phone number is registered on telegram: auth.checkPhone
-
-* Check if this username is available: account.checkUsername
-
-* Check if this username is free and can be assigned to a channel/supergroup: channels.checkUsername
-
-* Clear all recent stickers: messages.clearRecentStickers
-
-* Confirm this phone number is associated to this account, obtain phone_code_hash from sendConfirmPhoneCode: account.confirmPhone
-
-* Convert chat to supergroup: messages.migrateChat
-
-* Create a chat (not supergroup): messages.createChat
-
-* Create channel/supergroup: channels.createChannel
-
-* Delete a certain session: account.resetAuthorization
-
-* Delete a channel/supergroup: channels.deleteChannel
-
-* Delete a contact: contacts.deleteContact
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete all messages of a user in a channel/supergroup: channels.deleteUserHistory
-
-* Delete channel/supergroup messages: channels.deleteMessages
-
-* Delete chat history: messages.deleteHistory
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete this account: account.deleteAccount
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Edit a message: messages.editMessage
-
-* Edit a sent inline message: messages.editInlineBotMessage
-
-* Edit admin permissions of a user in a channel/supergroup: channels.editAdmin
-
-* Edit admin permissions: messages.editChatAdmin
-
-* Edit the about text of a channel/supergroup: channels.editAbout
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the photo of a supergroup/channel: channels.editPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Edit the title of a supergroup/channel: channels.editTitle
-
-* Enable all users are admins in normal groups (not supergroups): messages.toggleChatAdmins
-
-* Export chat invite : messages.exportChatInvite
-
-* Export contact as card: contacts.exportCard
-
-* Export the invite link of a channel: channels.exportInvite
-
-* Forward message: messages.forwardMessage
-
-* Forward messages: messages.forwardMessages
-
-* Get a stickerset: messages.getStickerSet
-
-* Get account TTL: account.getAccountTTL
-
-* Get all archived stickers: messages.getArchivedStickers
-
-* Get all contacts: contacts.getContacts
-
-* Get all logged-in authorizations: account.getAuthorizations
-
-* Get all message drafts: messages.getAllDrafts
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get and increase message views: messages.getMessagesViews
-
-* Get blocked users: contacts.getBlocked
-
-* Get channel/supergroup messages: channels.getMessages
-
-* Get channel/supergroup participants (you should use `$MadelineProto->get_pwr_chat($id)` instead): channels.getParticipants
-
-* Get dialog info of peers: messages.getPeerDialogs
-
-* Get document by SHA256 hash: messages.getDocumentByHash
-
-* Get featured stickers: messages.getFeaturedStickers
-
-* Get info about a certain channel/supergroup participant: channels.getParticipant
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about multiple channels/supergroups: channels.getChannels
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get invitation text: help.getInviteText
-
-* Get messages: messages.getMessages
-
-* Get most used chats: contacts.getTopPeers
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get recent stickers: messages.getRecentStickers
-
-* Get saved gifs: messages.getSavedGifs
-
-* Get server configuration: help.getConfig
-
-* Get stickers: messages.getStickers
-
-* Get terms of service: help.getTermsOfService
-
-* Get the callback answer of a bot (after clicking a button): messages.getBotCallbackAnswer
-
-* Get the changelog of this app: help.getAppChangelog
-
-* Get the current password: account.getPassword
-
-* Get the link of a message in a channel: channels.exportMessageLink
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Get the settings of apeer: messages.getPeerSettings
-
-* Get unused stickers: messages.getUnusedStickers
-
-* Get webpage preview: messages.getWebPagePreview
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Global message search: messages.searchGlobal
-
-* Hide report spam popup: messages.hideReportSpam
-
-* Import card as contact: contacts.importCard
-
-* Import chat invite: messages.importChatInvite
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Invalidate sent phone code: auth.cancelCode
-
-* Invite friends to telegram!: auth.sendInvites
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invoke with method without returning updates in the socket: invokeWithoutUpdates
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Join a channel/supergroup: channels.joinChannel
-
-* Kick user from channel: channels.kickFromChannel
-
-* Leave a channel/supergroup: channels.leaveChannel
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark channel/supergroup history as read: channels.readHistory
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Mark new featured stickers as read: messages.readFeaturedStickers
-
-* Register device for push notifications: account.registerDevice
-
-* Remove a sticker set: messages.uninstallStickerSet
-
-* Reorder sticker sets: messages.reorderStickerSets
-
-* Report a message in a supergroup/channel for spam: channels.reportSpam
-
-* Report a peer for spam: messages.reportSpam
-
-* Report for spam: account.reportPeer
-
-* Resend the SMS verification code: auth.resendCode
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Reset top peer rating for a certain category/peer: contacts.resetTopPeerRating
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Save a GIF: messages.saveGif
-
-* Save a message draft: messages.saveDraft
-
-* Search contacts: contacts.search
-
-* Search gifs: messages.searchGifs
-
-* Search peers or messages: messages.search
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message to all users in the chat list: messages.sendBroadcast
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send an email to recover the 2FA password: auth.requestPasswordRecovery
-
-* Send confirmation phone code: account.sendConfirmPhoneCode
-
-* Send inline bot result obtained with messages.getInlineBotResults to the chat: messages.sendInlineBotResult
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Set account TTL: account.setAccountTTL
-
-* Set privacy settings: account.setPrivacy
-
-* Set the pinned message of a channel/supergroup: channels.updatePinnedMessage
-
-* Start a bot: messages.startBot
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Toggle channel signatures: channels.toggleSignatures
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update profile info: account.updateProfile
-
-* Update the username of a supergroup/channel: channels.updateUsername
-
-* Update this user's username: account.updateUsername
-
-* Upload profile photo: photos.uploadProfilePhoto
-
-* Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
-
diff --git a/old_docs/API_docs_v55/methods/account_changePhone.md b/old_docs/API_docs_v55/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/old_docs/API_docs_v55/methods/account_changePhone.md
+++ b/old_docs/API_docs_v55/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v55/methods/account_checkUsername.md b/old_docs/API_docs_v55/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v55/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v55/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v55/methods/account_confirmPhone.md b/old_docs/API_docs_v55/methods/account_confirmPhone.md
index b730c2dc..c114cd20 100644
--- a/old_docs/API_docs_v55/methods/account_confirmPhone.md
+++ b/old_docs/API_docs_v55/methods/account_confirmPhone.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = account.confirmPhone({phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_HASH_INVALID|Code hash invalid|
-|PHONE_CODE_EMPTY|phone_code is missing|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_HASH_INVALID|Code hash invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
diff --git a/old_docs/API_docs_v55/methods/account_getNotifySettings.md b/old_docs/API_docs_v55/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v55/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v55/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v55/methods/account_getPasswordSettings.md b/old_docs/API_docs_v55/methods/account_getPasswordSettings.md
index 8ebb78ee..8f878365 100644
--- a/old_docs/API_docs_v55/methods/account_getPasswordSettings.md
+++ b/old_docs/API_docs_v55/methods/account_getPasswordSettings.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+Get the current 2FA settings
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+### Return type: [account\_PasswordSettings](../types/account_PasswordSettings.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$account_PasswordSettings = $MadelineProto->account->getPasswordSettings(['current_password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+account_PasswordSettings = account.getPasswordSettings({current_password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v55/methods/account_getPrivacy.md b/old_docs/API_docs_v55/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/old_docs/API_docs_v55/methods/account_getPrivacy.md
+++ b/old_docs/API_docs_v55/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v55/methods/account_registerDevice.md b/old_docs/API_docs_v55/methods/account_registerDevice.md
index cf16c2a2..82a6cad9 100644
--- a/old_docs/API_docs_v55/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v55/methods/account_registerDevice.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({token_type=int, token='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v55/methods/account_reportPeer.md b/old_docs/API_docs_v55/methods/account_reportPeer.md
index a203c900..87b080eb 100644
--- a/old_docs/API_docs_v55/methods/account_reportPeer.md
+++ b/old_docs/API_docs_v55/methods/account_reportPeer.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.reportPeer({peer=InputPeer, reason=ReportReason, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v55/methods/account_resetAuthorization.md b/old_docs/API_docs_v55/methods/account_resetAuthorization.md
index c950992c..e8e8ecc4 100644
--- a/old_docs/API_docs_v55/methods/account_resetAuthorization.md
+++ b/old_docs/API_docs_v55/methods/account_resetAuthorization.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.resetAuthorization({hash=long, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v55/methods/account_sendChangePhoneCode.md b/old_docs/API_docs_v55/methods/account_sendChangePhoneCode.md
index d5be60ef..08e5e86e 100644
--- a/old_docs/API_docs_v55/methods/account_sendChangePhoneCode.md
+++ b/old_docs/API_docs_v55/methods/account_sendChangePhoneCode.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendChangePhoneCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v55/methods/account_sendConfirmPhoneCode.md b/old_docs/API_docs_v55/methods/account_sendConfirmPhoneCode.md
index 028a1fdc..9fa7b57e 100644
--- a/old_docs/API_docs_v55/methods/account_sendConfirmPhoneCode.md
+++ b/old_docs/API_docs_v55/methods/account_sendConfirmPhoneCode.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendConfirmPhoneCode({allow_flashcall=Bool, hash='string', current_number=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v55/methods/account_setAccountTTL.md b/old_docs/API_docs_v55/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/old_docs/API_docs_v55/methods/account_setAccountTTL.md
+++ b/old_docs/API_docs_v55/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/old_docs/API_docs_v55/methods/account_setPrivacy.md b/old_docs/API_docs_v55/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/old_docs/API_docs_v55/methods/account_setPrivacy.md
+++ b/old_docs/API_docs_v55/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v55/methods/account_unregisterDevice.md b/old_docs/API_docs_v55/methods/account_unregisterDevice.md
index 589f48b0..a184da43 100644
--- a/old_docs/API_docs_v55/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v55/methods/account_unregisterDevice.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v55/methods/account_updateNotifySettings.md b/old_docs/API_docs_v55/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v55/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v55/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v55/methods/account_updatePasswordSettings.md b/old_docs/API_docs_v55/methods/account_updatePasswordSettings.md
index 80f27228..68e5da6d 100644
--- a/old_docs/API_docs_v55/methods/account_updatePasswordSettings.md
+++ b/old_docs/API_docs_v55/methods/account_updatePasswordSettings.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+|new\_settings|[account\_PasswordInputSettings](../types/account_PasswordInputSettings.md) | New 2FA settings | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->account->updatePasswordSettings(['current_password_hash' => 'bytes', 'new_settings' => account_PasswordInputSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = account.updatePasswordSettings({current_password_hash='bytes', new_settings=account_PasswordInputSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EMAIL_UNCONFIRMED|Email unconfirmed|
+|400|EMAIL_UNCONFIRMED_X|The provided email isn't confirmed, X is the length of the verification code that was just sent to the email.|
+|400|NEW_SALT_INVALID|The new salt is invalid|
+|400|NEW_SETTINGS_INVALID|The new settings are invalid|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v55/methods/account_updateProfile.md b/old_docs/API_docs_v55/methods/account_updateProfile.md
index af5b6a0f..0d74c5e5 100644
--- a/old_docs/API_docs_v55/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v55/methods/account_updateProfile.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v55/methods/account_updateStatus.md b/old_docs/API_docs_v55/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v55/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v55/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v55/methods/account_updateUsername.md b/old_docs/API_docs_v55/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v55/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v55/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v55/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v55/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v55/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v55/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v55/methods/auth_cancelCode.md b/old_docs/API_docs_v55/methods/auth_cancelCode.md
index fcbd7713..a69e0118 100644
--- a/old_docs/API_docs_v55/methods/auth_cancelCode.md
+++ b/old_docs/API_docs_v55/methods/auth_cancelCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = auth.cancelCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v55/methods/auth_checkPassword.md b/old_docs/API_docs_v55/methods/auth_checkPassword.md
index 8d76c483..db65cb56 100644
--- a/old_docs/API_docs_v55/methods/auth_checkPassword.md
+++ b/old_docs/API_docs_v55/methods/auth_checkPassword.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->checkPassword(['password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.checkPassword({password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v55/methods/auth_checkPhone.md b/old_docs/API_docs_v55/methods/auth_checkPhone.md
index f3e32365..e974ce7f 100644
--- a/old_docs/API_docs_v55/methods/auth_checkPhone.md
+++ b/old_docs/API_docs_v55/methods/auth_checkPhone.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
auth_CheckedPhone = auth.checkPhone({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v55/methods/auth_exportAuthorization.md b/old_docs/API_docs_v55/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v55/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v55/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v55/methods/auth_importAuthorization.md b/old_docs/API_docs_v55/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v55/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v55/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v55/methods/auth_importBotAuthorization.md b/old_docs/API_docs_v55/methods/auth_importBotAuthorization.md
index 1a98c1b9..98a2f8ca 100644
--- a/old_docs/API_docs_v55/methods/auth_importBotAuthorization.md
+++ b/old_docs/API_docs_v55/methods/auth_importBotAuthorization.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|api\_id|[int](../types/int.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_hash|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|bot\_auth\_token|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importBotAuthorization(['api_id' => int, 'api_hash' => 'string', 'bot_auth_token' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importBotAuthorization({api_id=int, api_hash='string', bot_auth_token='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ACCESS_TOKEN_EXPIRED|Access token expired|
+|400|ACCESS_TOKEN_INVALID|Access token invalid|
+|400|API_ID_INVALID|API ID invalid|
diff --git a/old_docs/API_docs_v55/methods/auth_logOut.md b/old_docs/API_docs_v55/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v55/methods/auth_logOut.md
+++ b/old_docs/API_docs_v55/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v55/methods/auth_recoverPassword.md b/old_docs/API_docs_v55/methods/auth_recoverPassword.md
index 83ff5aed..d4bad9c5 100644
--- a/old_docs/API_docs_v55/methods/auth_recoverPassword.md
+++ b/old_docs/API_docs_v55/methods/auth_recoverPassword.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
auth_Authorization = auth.recoverPassword({code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_EMPTY|The provided code is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_EMPTY|The provided code is empty|
diff --git a/old_docs/API_docs_v55/methods/auth_requestPasswordRecovery.md b/old_docs/API_docs_v55/methods/auth_requestPasswordRecovery.md
index 1864bbb0..b6ad57ba 100644
--- a/old_docs/API_docs_v55/methods/auth_requestPasswordRecovery.md
+++ b/old_docs/API_docs_v55/methods/auth_requestPasswordRecovery.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
auth_PasswordRecovery = auth.requestPasswordRecovery({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_EMPTY|The provided password is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_EMPTY|The provided password is empty|
diff --git a/old_docs/API_docs_v55/methods/auth_resendCode.md b/old_docs/API_docs_v55/methods/auth_resendCode.md
index ff7868ea..ec730d75 100644
--- a/old_docs/API_docs_v55/methods/auth_resendCode.md
+++ b/old_docs/API_docs_v55/methods/auth_resendCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = auth.resendCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v55/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v55/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v55/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v55/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v55/methods/auth_sendCode.md b/old_docs/API_docs_v55/methods/auth_sendCode.md
index 9afebb55..1e9d1a4e 100644
--- a/old_docs/API_docs_v55/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v55/methods/auth_sendCode.md
@@ -7,8 +7,59 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|allow\_flashcall|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|current\_number|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['allow_flashcall' => Bool, 'phone_number' => 'string', 'current_number' => Bool, 'api_id' => int, 'api_hash' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, api_id=int, api_hash='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v55/methods/auth_sendInvites.md b/old_docs/API_docs_v55/methods/auth_sendInvites.md
index e10c1109..4c11023e 100644
--- a/old_docs/API_docs_v55/methods/auth_sendInvites.md
+++ b/old_docs/API_docs_v55/methods/auth_sendInvites.md
@@ -49,10 +49,10 @@ Bool = auth.sendInvites({phone_numbers={'string'}, message='string', })
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_EMPTY|The provided message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_EMPTY|The provided message is empty|
diff --git a/old_docs/API_docs_v55/methods/auth_signIn.md b/old_docs/API_docs_v55/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v55/methods/auth_signIn.md
+++ b/old_docs/API_docs_v55/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v55/methods/auth_signUp.md b/old_docs/API_docs_v55/methods/auth_signUp.md
index 15960145..31154486 100644
--- a/old_docs/API_docs_v55/methods/auth_signUp.md
+++ b/old_docs/API_docs_v55/methods/auth_signUp.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', phone_code='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v55/methods/channels_checkUsername.md b/old_docs/API_docs_v55/methods/channels_checkUsername.md
index 483a2f6f..52365d34 100644
--- a/old_docs/API_docs_v55/methods/channels_checkUsername.md
+++ b/old_docs/API_docs_v55/methods/channels_checkUsername.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Bool = channels.checkUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v55/methods/channels_createChannel.md b/old_docs/API_docs_v55/methods/channels_createChannel.md
index b924e6a6..ecaee0ef 100644
--- a/old_docs/API_docs_v55/methods/channels_createChannel.md
+++ b/old_docs/API_docs_v55/methods/channels_createChannel.md
@@ -45,12 +45,12 @@ Or, if you're into Lua:
Updates = channels.createChannel({broadcast=Bool, megagroup=Bool, title='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_TITLE_EMPTY|No chat title provided|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
+|406|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v55/methods/channels_deleteChannel.md b/old_docs/API_docs_v55/methods/channels_deleteChannel.md
index 53a9c23d..1b8d2d48 100644
--- a/old_docs/API_docs_v55/methods/channels_deleteChannel.md
+++ b/old_docs/API_docs_v55/methods/channels_deleteChannel.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Updates = channels.deleteChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v55/methods/channels_deleteMessages.md b/old_docs/API_docs_v55/methods/channels_deleteMessages.md
index f76a9ad1..463ebad0 100644
--- a/old_docs/API_docs_v55/methods/channels_deleteMessages.md
+++ b/old_docs/API_docs_v55/methods/channels_deleteMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_AffectedMessages = channels.deleteMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v55/methods/channels_deleteUserHistory.md b/old_docs/API_docs_v55/methods/channels_deleteUserHistory.md
index 0a4e7d82..33905a7e 100644
--- a/old_docs/API_docs_v55/methods/channels_deleteUserHistory.md
+++ b/old_docs/API_docs_v55/methods/channels_deleteUserHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedHistory = channels.deleteUserHistory({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v55/methods/channels_editAbout.md b/old_docs/API_docs_v55/methods/channels_editAbout.md
index 47111668..d5e090e0 100644
--- a/old_docs/API_docs_v55/methods/channels_editAbout.md
+++ b/old_docs/API_docs_v55/methods/channels_editAbout.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Bool = channels.editAbout({channel=InputChannel, about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
-|CHAT_ABOUT_TOO_LONG|Chat about too long|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
+|400|CHAT_ABOUT_TOO_LONG|Chat about too long|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v55/methods/channels_editAdmin.md b/old_docs/API_docs_v55/methods/channels_editAdmin.md
index 3fbaf64d..229318fb 100644
--- a/old_docs/API_docs_v55/methods/channels_editAdmin.md
+++ b/old_docs/API_docs_v55/methods/channels_editAdmin.md
@@ -44,19 +44,19 @@ Or, if you're into Lua:
Updates = channels.editAdmin({channel=InputChannel, user_id=InputUser, role=ChannelParticipantRole, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ADMINS_TOO_MUCH|There are too many admins|
-|BOT_CHANNELS_NA|Bots can't edit admin privileges|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
-|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ADMINS_TOO_MUCH|There are too many admins|
+|400|BOT_CHANNELS_NA|Bots can't edit admin privileges|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
+|403|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v55/methods/channels_editPhoto.md b/old_docs/API_docs_v55/methods/channels_editPhoto.md
index bec0ba48..caef32d5 100644
--- a/old_docs/API_docs_v55/methods/channels_editPhoto.md
+++ b/old_docs/API_docs_v55/methods/channels_editPhoto.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editPhoto({channel=InputChannel, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|PHOTO_INVALID|Photo invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|PHOTO_INVALID|Photo invalid|
diff --git a/old_docs/API_docs_v55/methods/channels_editTitle.md b/old_docs/API_docs_v55/methods/channels_editTitle.md
index b5efeb39..d7cb33da 100644
--- a/old_docs/API_docs_v55/methods/channels_editTitle.md
+++ b/old_docs/API_docs_v55/methods/channels_editTitle.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editTitle({channel=InputChannel, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v55/methods/channels_exportInvite.md b/old_docs/API_docs_v55/methods/channels_exportInvite.md
index 0918b3e7..9d578deb 100644
--- a/old_docs/API_docs_v55/methods/channels_exportInvite.md
+++ b/old_docs/API_docs_v55/methods/channels_exportInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ExportedChatInvite = channels.exportInvite({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INVITE_HASH_EXPIRED|The invite link has expired|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
diff --git a/old_docs/API_docs_v55/methods/channels_exportMessageLink.md b/old_docs/API_docs_v55/methods/channels_exportMessageLink.md
index 66cd7584..2e92ee5e 100644
--- a/old_docs/API_docs_v55/methods/channels_exportMessageLink.md
+++ b/old_docs/API_docs_v55/methods/channels_exportMessageLink.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
ExportedMessageLink = channels.exportMessageLink({channel=InputChannel, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v55/methods/channels_getChannels.md b/old_docs/API_docs_v55/methods/channels_getChannels.md
index 78d50641..95d7a188 100644
--- a/old_docs/API_docs_v55/methods/channels_getChannels.md
+++ b/old_docs/API_docs_v55/methods/channels_getChannels.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = channels.getChannels({id={InputChannel}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v55/methods/channels_getFullChannel.md b/old_docs/API_docs_v55/methods/channels_getFullChannel.md
index 45a8ec72..ebd53de4 100644
--- a/old_docs/API_docs_v55/methods/channels_getFullChannel.md
+++ b/old_docs/API_docs_v55/methods/channels_getFullChannel.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->channels->getFullChannel(['channel' => InputChannel, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = channels.getFullChannel({channel=InputChannel, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v55/methods/channels_getMessages.md b/old_docs/API_docs_v55/methods/channels_getMessages.md
index aa85d640..57bcc60f 100644
--- a/old_docs/API_docs_v55/methods/channels_getMessages.md
+++ b/old_docs/API_docs_v55/methods/channels_getMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_Messages = channels.getMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
diff --git a/old_docs/API_docs_v55/methods/channels_getParticipant.md b/old_docs/API_docs_v55/methods/channels_getParticipant.md
index 6633114f..808156fd 100644
--- a/old_docs/API_docs_v55/methods/channels_getParticipant.md
+++ b/old_docs/API_docs_v55/methods/channels_getParticipant.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
channels_ChannelParticipant = channels.getParticipant({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v55/methods/channels_getParticipants.md b/old_docs/API_docs_v55/methods/channels_getParticipants.md
index d4bd8779..21d4a418 100644
--- a/old_docs/API_docs_v55/methods/channels_getParticipants.md
+++ b/old_docs/API_docs_v55/methods/channels_getParticipants.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, filter=ChannelParticipantsFilter, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v55/methods/channels_inviteToChannel.md b/old_docs/API_docs_v55/methods/channels_inviteToChannel.md
index f7093f13..d8c5e88a 100644
--- a/old_docs/API_docs_v55/methods/channels_inviteToChannel.md
+++ b/old_docs/API_docs_v55/methods/channels_inviteToChannel.md
@@ -43,25 +43,25 @@ Or, if you're into Lua:
Updates = channels.inviteToChannel({channel=InputChannel, users={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
-|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_BLOCKED|User blocked|
-|USER_BOT|Bots can only be admins in channels.|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_KICKED|This user was kicked from this supergroup/channel|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
+|400|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_BLOCKED|User blocked|
+|400|USER_BOT|Bots can only be admins in channels.|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_KICKED|This user was kicked from this supergroup/channel|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v55/methods/channels_joinChannel.md b/old_docs/API_docs_v55/methods/channels_joinChannel.md
index b056031a..a4a7c177 100644
--- a/old_docs/API_docs_v55/methods/channels_joinChannel.md
+++ b/old_docs/API_docs_v55/methods/channels_joinChannel.md
@@ -42,15 +42,15 @@ Or, if you're into Lua:
Updates = channels.joinChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
diff --git a/old_docs/API_docs_v55/methods/channels_leaveChannel.md b/old_docs/API_docs_v55/methods/channels_leaveChannel.md
index fdea13ba..6538d443 100644
--- a/old_docs/API_docs_v55/methods/channels_leaveChannel.md
+++ b/old_docs/API_docs_v55/methods/channels_leaveChannel.md
@@ -42,14 +42,14 @@ Or, if you're into Lua:
Updates = channels.leaveChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
-|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
diff --git a/old_docs/API_docs_v55/methods/channels_readHistory.md b/old_docs/API_docs_v55/methods/channels_readHistory.md
index 93dc075f..3532dae0 100644
--- a/old_docs/API_docs_v55/methods/channels_readHistory.md
+++ b/old_docs/API_docs_v55/methods/channels_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readHistory({channel=InputChannel, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v55/methods/channels_reportSpam.md b/old_docs/API_docs_v55/methods/channels_reportSpam.md
index db80676a..7e273cc5 100644
--- a/old_docs/API_docs_v55/methods/channels_reportSpam.md
+++ b/old_docs/API_docs_v55/methods/channels_reportSpam.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
Bool = channels.reportSpam({channel=InputChannel, user_id=InputUser, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
diff --git a/old_docs/API_docs_v55/methods/channels_toggleInvites.md b/old_docs/API_docs_v55/methods/channels_toggleInvites.md
index e5d3fba1..6266d30b 100644
--- a/old_docs/API_docs_v55/methods/channels_toggleInvites.md
+++ b/old_docs/API_docs_v55/methods/channels_toggleInvites.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.toggleInvites({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v55/methods/channels_toggleSignatures.md b/old_docs/API_docs_v55/methods/channels_toggleSignatures.md
index cdfc0fda..f8624946 100644
--- a/old_docs/API_docs_v55/methods/channels_toggleSignatures.md
+++ b/old_docs/API_docs_v55/methods/channels_toggleSignatures.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = channels.toggleSignatures({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v55/methods/channels_updatePinnedMessage.md b/old_docs/API_docs_v55/methods/channels_updatePinnedMessage.md
index 53733a22..37d7c3c0 100644
--- a/old_docs/API_docs_v55/methods/channels_updatePinnedMessage.md
+++ b/old_docs/API_docs_v55/methods/channels_updatePinnedMessage.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = channels.updatePinnedMessage({silent=Bool, channel=InputChannel, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v55/methods/channels_updateUsername.md b/old_docs/API_docs_v55/methods/channels_updateUsername.md
index 677712f9..48d250e6 100644
--- a/old_docs/API_docs_v55/methods/channels_updateUsername.md
+++ b/old_docs/API_docs_v55/methods/channels_updateUsername.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Bool = channels.updateUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_OCCUPIED|The provided username is already occupied|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
diff --git a/old_docs/API_docs_v55/methods/contacts_block.md b/old_docs/API_docs_v55/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v55/methods/contacts_block.md
+++ b/old_docs/API_docs_v55/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v55/methods/contacts_deleteContact.md b/old_docs/API_docs_v55/methods/contacts_deleteContact.md
index ba9569e4..a9321d64 100644
--- a/old_docs/API_docs_v55/methods/contacts_deleteContact.md
+++ b/old_docs/API_docs_v55/methods/contacts_deleteContact.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
contacts_Link = contacts.deleteContact({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v55/methods/contacts_deleteContacts.md b/old_docs/API_docs_v55/methods/contacts_deleteContacts.md
index bfc91fdd..3c8e90f0 100644
--- a/old_docs/API_docs_v55/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v55/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v55/methods/contacts_getStatuses.md b/old_docs/API_docs_v55/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v55/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v55/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v55/methods/contacts_getTopPeers.md b/old_docs/API_docs_v55/methods/contacts_getTopPeers.md
index 0552f184..1aba4f85 100644
--- a/old_docs/API_docs_v55/methods/contacts_getTopPeers.md
+++ b/old_docs/API_docs_v55/methods/contacts_getTopPeers.md
@@ -49,10 +49,10 @@ Or, if you're into Lua:
contacts_TopPeers = contacts.getTopPeers({correspondents=Bool, bots_pm=Bool, bots_inline=Bool, groups=Bool, channels=Bool, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TYPES_EMPTY|No top peer type was provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TYPES_EMPTY|No top peer type was provided|
diff --git a/old_docs/API_docs_v55/methods/contacts_importCard.md b/old_docs/API_docs_v55/methods/contacts_importCard.md
index 15addde1..ed3d17fe 100644
--- a/old_docs/API_docs_v55/methods/contacts_importCard.md
+++ b/old_docs/API_docs_v55/methods/contacts_importCard.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
User = contacts.importCard({export_card={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|EXPORT_CARD_INVALID|Provided card is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EXPORT_CARD_INVALID|Provided card is invalid|
diff --git a/old_docs/API_docs_v55/methods/contacts_resetTopPeerRating.md b/old_docs/API_docs_v55/methods/contacts_resetTopPeerRating.md
index 43cf1685..787be177 100644
--- a/old_docs/API_docs_v55/methods/contacts_resetTopPeerRating.md
+++ b/old_docs/API_docs_v55/methods/contacts_resetTopPeerRating.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = contacts.resetTopPeerRating({category=TopPeerCategory, peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v55/methods/contacts_resolveUsername.md b/old_docs/API_docs_v55/methods/contacts_resolveUsername.md
index fab56bb1..68f709db 100644
--- a/old_docs/API_docs_v55/methods/contacts_resolveUsername.md
+++ b/old_docs/API_docs_v55/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [contacts\_ResolvedPeer](../types/contacts_ResolvedPeer.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$contacts_ResolvedPeer = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+contacts_ResolvedPeer = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v55/methods/contacts_search.md b/old_docs/API_docs_v55/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v55/methods/contacts_search.md
+++ b/old_docs/API_docs_v55/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v55/methods/contacts_unblock.md b/old_docs/API_docs_v55/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v55/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v55/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v55/methods/help_getConfig.md b/old_docs/API_docs_v55/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v55/methods/help_getConfig.md
+++ b/old_docs/API_docs_v55/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v55/methods/initConnection.md b/old_docs/API_docs_v55/methods/initConnection.md
index 659f4e6b..a41f0c4d 100644
--- a/old_docs/API_docs_v55/methods/initConnection.md
+++ b/old_docs/API_docs_v55/methods/initConnection.md
@@ -47,11 +47,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', lang_code='string', query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v55/methods/invokeWithLayer.md b/old_docs/API_docs_v55/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/old_docs/API_docs_v55/methods/invokeWithLayer.md
+++ b/old_docs/API_docs_v55/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v55/methods/messages_acceptEncryption.md b/old_docs/API_docs_v55/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v55/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v55/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v55/methods/messages_addChatUser.md b/old_docs/API_docs_v55/methods/messages_addChatUser.md
index bc0d6253..b5e164b2 100644
--- a/old_docs/API_docs_v55/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v55/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
Updates = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v55/methods/messages_checkChatInvite.md b/old_docs/API_docs_v55/methods/messages_checkChatInvite.md
index de28b09b..0d13d55e 100644
--- a/old_docs/API_docs_v55/methods/messages_checkChatInvite.md
+++ b/old_docs/API_docs_v55/methods/messages_checkChatInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ChatInvite = messages.checkChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
diff --git a/old_docs/API_docs_v55/methods/messages_createChat.md b/old_docs/API_docs_v55/methods/messages_createChat.md
index 8f6e9672..b2623f1d 100644
--- a/old_docs/API_docs_v55/methods/messages_createChat.md
+++ b/old_docs/API_docs_v55/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v55/methods/messages_deleteChatUser.md b/old_docs/API_docs_v55/methods/messages_deleteChatUser.md
index 63529571..11b9b220 100644
--- a/old_docs/API_docs_v55/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v55/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v55/methods/messages_deleteHistory.md b/old_docs/API_docs_v55/methods/messages_deleteHistory.md
index 2ade177e..338c2cdf 100644
--- a/old_docs/API_docs_v55/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v55/methods/messages_deleteHistory.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({just_clear=Bool, peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v55/methods/messages_deleteMessages.md b/old_docs/API_docs_v55/methods/messages_deleteMessages.md
index 6df3ffec..a0d79592 100644
--- a/old_docs/API_docs_v55/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v55/methods/messages_deleteMessages.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.deleteMessages({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v55/methods/messages_discardEncryption.md b/old_docs/API_docs_v55/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v55/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v55/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v55/methods/messages_editChatAdmin.md b/old_docs/API_docs_v55/methods/messages_editChatAdmin.md
index 2b4dc94c..6f6c1376 100644
--- a/old_docs/API_docs_v55/methods/messages_editChatAdmin.md
+++ b/old_docs/API_docs_v55/methods/messages_editChatAdmin.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.editChatAdmin({chat_id=InputPeer, user_id=InputUser, is_admin=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v55/methods/messages_editChatPhoto.md b/old_docs/API_docs_v55/methods/messages_editChatPhoto.md
index 2a82c232..a21a03b9 100644
--- a/old_docs/API_docs_v55/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v55/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Updates = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v55/methods/messages_editChatTitle.md b/old_docs/API_docs_v55/methods/messages_editChatTitle.md
index 2c338ad6..72f78741 100644
--- a/old_docs/API_docs_v55/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v55/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v55/methods/messages_editInlineBotMessage.md b/old_docs/API_docs_v55/methods/messages_editInlineBotMessage.md
index f22642f2..c274cbb9 100644
--- a/old_docs/API_docs_v55/methods/messages_editInlineBotMessage.md
+++ b/old_docs/API_docs_v55/methods/messages_editInlineBotMessage.md
@@ -95,11 +95,11 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
diff --git a/old_docs/API_docs_v55/methods/messages_editMessage.md b/old_docs/API_docs_v55/methods/messages_editMessage.md
index 05fee4b3..d3ce5261 100644
--- a/old_docs/API_docs_v55/methods/messages_editMessage.md
+++ b/old_docs/API_docs_v55/methods/messages_editMessage.md
@@ -96,20 +96,20 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v55/methods/messages_exportChatInvite.md b/old_docs/API_docs_v55/methods/messages_exportChatInvite.md
index f3449e79..bc6272e4 100644
--- a/old_docs/API_docs_v55/methods/messages_exportChatInvite.md
+++ b/old_docs/API_docs_v55/methods/messages_exportChatInvite.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
ExportedChatInvite = messages.exportChatInvite({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v55/methods/messages_forwardMessage.md b/old_docs/API_docs_v55/methods/messages_forwardMessage.md
index c8e0b18d..95f6d2f3 100644
--- a/old_docs/API_docs_v55/methods/messages_forwardMessage.md
+++ b/old_docs/API_docs_v55/methods/messages_forwardMessage.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Updates = messages.forwardMessage({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|YOU_BLOCKED_USER|You blocked this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|YOU_BLOCKED_USER|You blocked this user|
diff --git a/old_docs/API_docs_v55/methods/messages_forwardMessages.md b/old_docs/API_docs_v55/methods/messages_forwardMessages.md
index b4f09a8b..1999e99f 100644
--- a/old_docs/API_docs_v55/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v55/methods/messages_forwardMessages.md
@@ -46,29 +46,29 @@ Or, if you're into Lua:
Updates = messages.forwardMessages({silent=Bool, background=Bool, from_peer=InputPeer, id={int}, to_peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v55/methods/messages_getBotCallbackAnswer.md b/old_docs/API_docs_v55/methods/messages_getBotCallbackAnswer.md
index 8df04eaf..9666af5f 100644
--- a/old_docs/API_docs_v55/methods/messages_getBotCallbackAnswer.md
+++ b/old_docs/API_docs_v55/methods/messages_getBotCallbackAnswer.md
@@ -44,14 +44,14 @@ Or, if you're into Lua:
messages_BotCallbackAnswer = messages.getBotCallbackAnswer({peer=InputPeer, msg_id=int, data='bytes', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v55/methods/messages_getChats.md b/old_docs/API_docs_v55/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/old_docs/API_docs_v55/methods/messages_getChats.md
+++ b/old_docs/API_docs_v55/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v55/methods/messages_getDhConfig.md b/old_docs/API_docs_v55/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v55/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v55/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v55/methods/messages_getDialogs.md b/old_docs/API_docs_v55/methods/messages_getDialogs.md
index 024b0068..8d8522d5 100644
--- a/old_docs/API_docs_v55/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v55/methods/messages_getDialogs.md
@@ -45,13 +45,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({offset_date=int, offset_id=int, offset_peer=InputPeer, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v55/methods/messages_getDocumentByHash.md b/old_docs/API_docs_v55/methods/messages_getDocumentByHash.md
index 73a235d5..06469c52 100644
--- a/old_docs/API_docs_v55/methods/messages_getDocumentByHash.md
+++ b/old_docs/API_docs_v55/methods/messages_getDocumentByHash.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Document = messages.getDocumentByHash({sha256='bytes', size=int, mime_type='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
diff --git a/old_docs/API_docs_v55/methods/messages_getFullChat.md b/old_docs/API_docs_v55/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v55/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v55/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v55/methods/messages_getHistory.md b/old_docs/API_docs_v55/methods/messages_getHistory.md
index ced9753f..68f746ba 100644
--- a/old_docs/API_docs_v55/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v55/methods/messages_getHistory.md
@@ -48,16 +48,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset_id=int, offset_date=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v55/methods/messages_getInlineBotResults.md b/old_docs/API_docs_v55/methods/messages_getInlineBotResults.md
index 1efcb412..17d678b7 100644
--- a/old_docs/API_docs_v55/methods/messages_getInlineBotResults.md
+++ b/old_docs/API_docs_v55/methods/messages_getInlineBotResults.md
@@ -46,13 +46,13 @@ Or, if you're into Lua:
messages_BotResults = messages.getInlineBotResults({bot=InputUser, peer=InputPeer, geo_point=InputGeoPoint, query='string', offset='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
-|BOT_INVALID|This is not a valid bot|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
+|400|BOT_INVALID|This is not a valid bot|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v55/methods/messages_getMessageEditData.md b/old_docs/API_docs_v55/methods/messages_getMessageEditData.md
index 7f1b7164..b907d78c 100644
--- a/old_docs/API_docs_v55/methods/messages_getMessageEditData.md
+++ b/old_docs/API_docs_v55/methods/messages_getMessageEditData.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_MessageEditData = messages.getMessageEditData({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v55/methods/messages_getMessagesViews.md b/old_docs/API_docs_v55/methods/messages_getMessagesViews.md
index 3d490315..143e568c 100644
--- a/old_docs/API_docs_v55/methods/messages_getMessagesViews.md
+++ b/old_docs/API_docs_v55/methods/messages_getMessagesViews.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
Vector_of_int = messages.getMessagesViews({peer=InputPeer, id={int}, increment=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v55/methods/messages_getPeerDialogs.md b/old_docs/API_docs_v55/methods/messages_getPeerDialogs.md
index 6811001a..0c770183 100644
--- a/old_docs/API_docs_v55/methods/messages_getPeerDialogs.md
+++ b/old_docs/API_docs_v55/methods/messages_getPeerDialogs.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPeerDialogs({peers={InputPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v55/methods/messages_getPeerSettings.md b/old_docs/API_docs_v55/methods/messages_getPeerSettings.md
index 26dafb9b..69032ff5 100644
--- a/old_docs/API_docs_v55/methods/messages_getPeerSettings.md
+++ b/old_docs/API_docs_v55/methods/messages_getPeerSettings.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
PeerSettings = messages.getPeerSettings({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v55/methods/messages_getStickerSet.md b/old_docs/API_docs_v55/methods/messages_getStickerSet.md
index 57bce84d..487316cc 100644
--- a/old_docs/API_docs_v55/methods/messages_getStickerSet.md
+++ b/old_docs/API_docs_v55/methods/messages_getStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_StickerSet = messages.getStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v55/methods/messages_hideReportSpam.md b/old_docs/API_docs_v55/methods/messages_hideReportSpam.md
index c4bf7399..57756d2e 100644
--- a/old_docs/API_docs_v55/methods/messages_hideReportSpam.md
+++ b/old_docs/API_docs_v55/methods/messages_hideReportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.hideReportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v55/methods/messages_importChatInvite.md b/old_docs/API_docs_v55/methods/messages_importChatInvite.md
index 12120867..101b4b19 100644
--- a/old_docs/API_docs_v55/methods/messages_importChatInvite.md
+++ b/old_docs/API_docs_v55/methods/messages_importChatInvite.md
@@ -42,16 +42,16 @@ Or, if you're into Lua:
Updates = messages.importChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v55/methods/messages_installStickerSet.md b/old_docs/API_docs_v55/methods/messages_installStickerSet.md
index 21a57a85..67f2aca0 100644
--- a/old_docs/API_docs_v55/methods/messages_installStickerSet.md
+++ b/old_docs/API_docs_v55/methods/messages_installStickerSet.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_StickerSetInstallResult = messages.installStickerSet({stickerset=InputStickerSet, archived=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v55/methods/messages_migrateChat.md b/old_docs/API_docs_v55/methods/messages_migrateChat.md
index a72f4c11..ee4010eb 100644
--- a/old_docs/API_docs_v55/methods/messages_migrateChat.md
+++ b/old_docs/API_docs_v55/methods/messages_migrateChat.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
Updates = messages.migrateChat({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v55/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v55/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v55/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v55/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v55/methods/messages_readHistory.md b/old_docs/API_docs_v55/methods/messages_readHistory.md
index 2ad5cd09..a7f0eca7 100644
--- a/old_docs/API_docs_v55/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v55/methods/messages_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.readHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v55/methods/messages_receivedQueue.md b/old_docs/API_docs_v55/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v55/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v55/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v55/methods/messages_reportSpam.md b/old_docs/API_docs_v55/methods/messages_reportSpam.md
index e92fba13..dc256e55 100644
--- a/old_docs/API_docs_v55/methods/messages_reportSpam.md
+++ b/old_docs/API_docs_v55/methods/messages_reportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v55/methods/messages_requestEncryption.md b/old_docs/API_docs_v55/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v55/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v55/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v55/methods/messages_saveDraft.md b/old_docs/API_docs_v55/methods/messages_saveDraft.md
index 791ce234..ea6d407e 100644
--- a/old_docs/API_docs_v55/methods/messages_saveDraft.md
+++ b/old_docs/API_docs_v55/methods/messages_saveDraft.md
@@ -89,10 +89,10 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v55/methods/messages_saveGif.md b/old_docs/API_docs_v55/methods/messages_saveGif.md
index f504ff9e..010e17ec 100644
--- a/old_docs/API_docs_v55/methods/messages_saveGif.md
+++ b/old_docs/API_docs_v55/methods/messages_saveGif.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.saveGif({id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|GIF_ID_INVALID|The provided GIF ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|GIF_ID_INVALID|The provided GIF ID is invalid|
diff --git a/old_docs/API_docs_v55/methods/messages_saveRecentSticker.md b/old_docs/API_docs_v55/methods/messages_saveRecentSticker.md
index 54c0fa56..4d1ad21b 100644
--- a/old_docs/API_docs_v55/methods/messages_saveRecentSticker.md
+++ b/old_docs/API_docs_v55/methods/messages_saveRecentSticker.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.saveRecentSticker({id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v55/methods/messages_search.md b/old_docs/API_docs_v55/methods/messages_search.md
index 5f5480cc..dc1b6934 100644
--- a/old_docs/API_docs_v55/methods/messages_search.md
+++ b/old_docs/API_docs_v55/methods/messages_search.md
@@ -49,16 +49,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({peer=InputPeer, q='string', filter=MessagesFilter, min_date=int, max_date=int, offset=int, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v55/methods/messages_searchGifs.md b/old_docs/API_docs_v55/methods/messages_searchGifs.md
index 7be4173b..1602d35e 100644
--- a/old_docs/API_docs_v55/methods/messages_searchGifs.md
+++ b/old_docs/API_docs_v55/methods/messages_searchGifs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_FoundGifs = messages.searchGifs({q='string', offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v55/methods/messages_searchGlobal.md b/old_docs/API_docs_v55/methods/messages_searchGlobal.md
index fb38398b..c8da163c 100644
--- a/old_docs/API_docs_v55/methods/messages_searchGlobal.md
+++ b/old_docs/API_docs_v55/methods/messages_searchGlobal.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
messages_Messages = messages.searchGlobal({q='string', offset_date=int, offset_peer=InputPeer, offset_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v55/methods/messages_sendEncrypted.md b/old_docs/API_docs_v55/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v55/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v55/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v55/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v55/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v55/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v55/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v55/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v55/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v55/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v55/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v55/methods/messages_sendInlineBotResult.md b/old_docs/API_docs_v55/methods/messages_sendInlineBotResult.md
index 9ffa02ae..a2b57f4d 100644
--- a/old_docs/API_docs_v55/methods/messages_sendInlineBotResult.md
+++ b/old_docs/API_docs_v55/methods/messages_sendInlineBotResult.md
@@ -48,15 +48,15 @@ Or, if you're into Lua:
Updates = messages.sendInlineBotResult({silent=Bool, background=Bool, clear_draft=Bool, peer=InputPeer, reply_to_msg_id=int, query_id=long, id='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INLINE_RESULT_EXPIRED|The inline query expired|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|QUERY_ID_EMPTY|The query ID is empty|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INLINE_RESULT_EXPIRED|The inline query expired|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|QUERY_ID_EMPTY|The query ID is empty|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v55/methods/messages_sendMedia.md b/old_docs/API_docs_v55/methods/messages_sendMedia.md
index 89dc5572..9bfd0743 100644
--- a/old_docs/API_docs_v55/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v55/methods/messages_sendMedia.md
@@ -54,31 +54,31 @@ Updates = messages.sendMedia({silent=Bool, background=Bool, clear_draft=Bool, pe
You can provide bot API reply_markup objects here.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v55/methods/messages_sendMessage.md b/old_docs/API_docs_v55/methods/messages_sendMessage.md
index 5641ebc3..e0ab305d 100644
--- a/old_docs/API_docs_v55/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v55/methods/messages_sendMessage.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v55/methods/messages_setBotCallbackAnswer.md b/old_docs/API_docs_v55/methods/messages_setBotCallbackAnswer.md
index 6b1f79a3..77824bb1 100644
--- a/old_docs/API_docs_v55/methods/messages_setBotCallbackAnswer.md
+++ b/old_docs/API_docs_v55/methods/messages_setBotCallbackAnswer.md
@@ -51,11 +51,11 @@ Bool = messages.setBotCallbackAnswer({alert=Bool, query_id=long, message='string
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|URL_INVALID|Invalid URL provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|URL_INVALID|Invalid URL provided|
diff --git a/old_docs/API_docs_v55/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v55/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v55/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v55/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v55/methods/messages_setInlineBotResults.md b/old_docs/API_docs_v55/methods/messages_setInlineBotResults.md
index ab388e39..df4c30d4 100644
--- a/old_docs/API_docs_v55/methods/messages_setInlineBotResults.md
+++ b/old_docs/API_docs_v55/methods/messages_setInlineBotResults.md
@@ -48,23 +48,23 @@ Or, if you're into Lua:
Bool = messages.setInlineBotResults({gallery=Bool, private=Bool, query_id=long, results={InputBotInlineResult}, cache_time=int, next_offset='string', switch_pm=InlineBotSwitchPM, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ARTICLE_TITLE_EMPTY|The title of the article is empty|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|PHOTO_INVALID|Photo invalid|
-|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
-|QUERY_ID_INVALID|The query ID is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|RESULT_TYPE_INVALID|Result type invalid|
-|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
-|START_PARAM_INVALID|Start parameter invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ARTICLE_TITLE_EMPTY|The title of the article is empty|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|PHOTO_INVALID|Photo invalid|
+|400|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|RESULT_TYPE_INVALID|Result type invalid|
+|400|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
+|400|START_PARAM_INVALID|Start parameter invalid|
+|403|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v55/methods/messages_setTyping.md b/old_docs/API_docs_v55/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v55/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v55/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v55/methods/messages_startBot.md b/old_docs/API_docs_v55/methods/messages_startBot.md
index aa2b2d00..4bf12aa6 100644
--- a/old_docs/API_docs_v55/methods/messages_startBot.md
+++ b/old_docs/API_docs_v55/methods/messages_startBot.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = messages.startBot({bot=InputUser, peer=InputPeer, start_param='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INVALID|This is not a valid bot|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|START_PARAM_EMPTY|The start parameter is empty|
-|START_PARAM_INVALID|Start parameter invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INVALID|This is not a valid bot|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|START_PARAM_EMPTY|The start parameter is empty|
+|400|START_PARAM_INVALID|Start parameter invalid|
diff --git a/old_docs/API_docs_v55/methods/messages_toggleChatAdmins.md b/old_docs/API_docs_v55/methods/messages_toggleChatAdmins.md
index 7851806d..8ea6e65e 100644
--- a/old_docs/API_docs_v55/methods/messages_toggleChatAdmins.md
+++ b/old_docs/API_docs_v55/methods/messages_toggleChatAdmins.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.toggleChatAdmins({chat_id=InputPeer, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v55/methods/messages_uninstallStickerSet.md b/old_docs/API_docs_v55/methods/messages_uninstallStickerSet.md
index 59abc510..6b7a2006 100644
--- a/old_docs/API_docs_v55/methods/messages_uninstallStickerSet.md
+++ b/old_docs/API_docs_v55/methods/messages_uninstallStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.uninstallStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v55/methods/photos_getUserPhotos.md b/old_docs/API_docs_v55/methods/photos_getUserPhotos.md
index 57f5772b..a01f3180 100644
--- a/old_docs/API_docs_v55/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v55/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v55/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v55/methods/photos_updateProfilePhoto.md
index 53d0b12f..db7fe164 100644
--- a/old_docs/API_docs_v55/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v55/methods/photos_updateProfilePhoto.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, crop=InputPhotoCrop, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v55/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v55/methods/photos_uploadProfilePhoto.md
index f140329e..10653c42 100644
--- a/old_docs/API_docs_v55/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v55/methods/photos_uploadProfilePhoto.md
@@ -45,13 +45,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, caption='string', geo_point=InputGeoPoint, crop=InputPhotoCrop, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v55/methods/updates_getChannelDifference.md b/old_docs/API_docs_v55/methods/updates_getChannelDifference.md
index 6fa79529..08d497ed 100644
--- a/old_docs/API_docs_v55/methods/updates_getChannelDifference.md
+++ b/old_docs/API_docs_v55/methods/updates_getChannelDifference.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|filter|[ChannelMessagesFilter](../types/ChannelMessagesFilter.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_ChannelDifference](../types/updates_ChannelDifference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_ChannelDifference = $MadelineProto->updates->getChannelDifference(['channel' => InputChannel, 'filter' => ChannelMessagesFilter, 'pts' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_ChannelDifference = updates.getChannelDifference({channel=InputChannel, filter=ChannelMessagesFilter, pts=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|400|RANGES_INVALID|Invalid range provided|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v55/methods/updates_getDifference.md b/old_docs/API_docs_v55/methods/updates_getDifference.md
index 33e7d7f2..57ea6d99 100644
--- a/old_docs/API_docs_v55/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v55/methods/updates_getDifference.md
@@ -7,8 +7,54 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v55/methods/updates_getState.md b/old_docs/API_docs_v55/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v55/methods/updates_getState.md
+++ b/old_docs/API_docs_v55/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v55/methods/upload_getFile.md b/old_docs/API_docs_v55/methods/upload_getFile.md
index c72e6090..d8b433d6 100644
--- a/old_docs/API_docs_v55/methods/upload_getFile.md
+++ b/old_docs/API_docs_v55/methods/upload_getFile.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v55/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v55/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v55/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v55/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v55/methods/upload_saveFilePart.md b/old_docs/API_docs_v55/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v55/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v55/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v55/methods/users_getFullUser.md b/old_docs/API_docs_v55/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v55/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v55/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v55/methods/users_getUsers.md b/old_docs/API_docs_v55/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v55/methods/users_getUsers.md
+++ b/old_docs/API_docs_v55/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v57/methods/README.md b/old_docs/API_docs_v57/methods/README.md
index 8b1a949f..a161eab6 100644
--- a/old_docs/API_docs_v57/methods/README.md
+++ b/old_docs/API_docs_v57/methods/README.md
@@ -30,321 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Add a sticker set: messages.installStickerSet
-
-* Add a sticker to recent stickers: messages.saveRecentSticker
-
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add phone number as contact: contacts.importContacts
-
-* Add users to channel/supergroup: channels.inviteToChannel
-
-* Allow or disallow any user to invite users to this channel/supergroup: channels.toggleInvites
-
-* Block a user: contacts.block
-
-* Bots only: set the callback answer (after a button was clicked): messages.setBotCallbackAnswer
-
-* Bots only: set the results of an inline query: messages.setInlineBotResults
-
-* Call inline bot: messages.getInlineBotResults
-
-* Change notification settings: account.updateNotifySettings
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if about to edit a message or a media caption: messages.getMessageEditData
-
-* Check if an invitation link is valid: messages.checkChatInvite
-
-* Check if this phone number is registered on telegram: auth.checkPhone
-
-* Check if this username is available: account.checkUsername
-
-* Check if this username is free and can be assigned to a channel/supergroup: channels.checkUsername
-
-* Clear all recent stickers: messages.clearRecentStickers
-
-* Confirm this phone number is associated to this account, obtain phone_code_hash from sendConfirmPhoneCode: account.confirmPhone
-
-* Convert chat to supergroup: messages.migrateChat
-
-* Create a chat (not supergroup): messages.createChat
-
-* Create channel/supergroup: channels.createChannel
-
-* Delete a certain session: account.resetAuthorization
-
-* Delete a channel/supergroup: channels.deleteChannel
-
-* Delete a contact: contacts.deleteContact
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete all messages of a user in a channel/supergroup: channels.deleteUserHistory
-
-* Delete all temporary authorization keys except the ones provided: auth.dropTempAuthKeys
-
-* Delete channel/supergroup messages: channels.deleteMessages
-
-* Delete chat history: messages.deleteHistory
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete this account: account.deleteAccount
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Edit a message: messages.editMessage
-
-* Edit a sent inline message: messages.editInlineBotMessage
-
-* Edit admin permissions of a user in a channel/supergroup: channels.editAdmin
-
-* Edit admin permissions: messages.editChatAdmin
-
-* Edit the about text of a channel/supergroup: channels.editAbout
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the photo of a supergroup/channel: channels.editPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Edit the title of a supergroup/channel: channels.editTitle
-
-* Enable all users are admins in normal groups (not supergroups): messages.toggleChatAdmins
-
-* Export chat invite : messages.exportChatInvite
-
-* Export contact as card: contacts.exportCard
-
-* Export the invite link of a channel: channels.exportInvite
-
-* Forward message: messages.forwardMessage
-
-* Forward messages: messages.forwardMessages
-
-* Get a stickerset: messages.getStickerSet
-
-* Get account TTL: account.getAccountTTL
-
-* Get all archived stickers: messages.getArchivedStickers
-
-* Get all contacts: contacts.getContacts
-
-* Get all logged-in authorizations: account.getAuthorizations
-
-* Get all message drafts: messages.getAllDrafts
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get all supergroups/channels where you're admin: channels.getAdminedPublicChannels
-
-* Get and increase message views: messages.getMessagesViews
-
-* Get blocked users: contacts.getBlocked
-
-* Get channel/supergroup messages: channels.getMessages
-
-* Get channel/supergroup participants (you should use `$MadelineProto->get_pwr_chat($id)` instead): channels.getParticipants
-
-* Get dialog info of peers: messages.getPeerDialogs
-
-* Get document by SHA256 hash: messages.getDocumentByHash
-
-* Get featured stickers: messages.getFeaturedStickers
-
-* Get high scores of a game sent in an inline message: messages.getInlineGameHighScores
-
-* Get high scores of a game: messages.getGameHighScores
-
-* Get info about a certain channel/supergroup participant: channels.getParticipant
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about multiple channels/supergroups: channels.getChannels
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get invitation text: help.getInviteText
-
-* Get masks: messages.getMaskStickers
-
-* Get messages: messages.getMessages
-
-* Get most used chats: contacts.getTopPeers
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get recent stickers: messages.getRecentStickers
-
-* Get saved gifs: messages.getSavedGifs
-
-* Get server configuration: help.getConfig
-
-* Get stickers attachable to images: messages.getAttachedStickers
-
-* Get terms of service: help.getTermsOfService
-
-* Get the callback answer of a bot (after clicking a button): messages.getBotCallbackAnswer
-
-* Get the changelog of this app: help.getAppChangelog
-
-* Get the current password: account.getPassword
-
-* Get the link of a message in a channel: channels.exportMessageLink
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Get the settings of apeer: messages.getPeerSettings
-
-* Get webpage preview: messages.getWebPagePreview
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Global message search: messages.searchGlobal
-
-* Hide report spam popup: messages.hideReportSpam
-
-* Import card as contact: contacts.importCard
-
-* Import chat invite: messages.importChatInvite
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Invalidate sent phone code: auth.cancelCode
-
-* Invite friends to telegram!: auth.sendInvites
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invoke with method without returning updates in the socket: invokeWithoutUpdates
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Join a channel/supergroup: channels.joinChannel
-
-* Kick user from channel: channels.kickFromChannel
-
-* Leave a channel/supergroup: channels.leaveChannel
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark channel/supergroup history as read: channels.readHistory
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Mark new featured stickers as read: messages.readFeaturedStickers
-
-* Register device for push notifications: account.registerDevice
-
-* Remove a sticker set: messages.uninstallStickerSet
-
-* Reorder sticker sets: messages.reorderStickerSets
-
-* Report a message in a supergroup/channel for spam: channels.reportSpam
-
-* Report a peer for spam: messages.reportSpam
-
-* Report for spam: account.reportPeer
-
-* Resend the SMS verification code: auth.resendCode
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Reset top peer rating for a certain category/peer: contacts.resetTopPeerRating
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Save a GIF: messages.saveGif
-
-* Save a message draft: messages.saveDraft
-
-* Search contacts: contacts.search
-
-* Search gifs: messages.searchGifs
-
-* Search peers or messages: messages.search
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send an email to recover the 2FA password: auth.requestPasswordRecovery
-
-* Send confirmation phone code: account.sendConfirmPhoneCode
-
-* Send inline bot result obtained with messages.getInlineBotResults to the chat: messages.sendInlineBotResult
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Set account TTL: account.setAccountTTL
-
-* Set privacy settings: account.setPrivacy
-
-* Set the game score of an inline message: messages.setInlineGameScore
-
-* Set the game score: messages.setGameScore
-
-* Set the pinned message of a channel/supergroup: channels.updatePinnedMessage
-
-* Start a bot: messages.startBot
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Toggle channel signatures: channels.toggleSignatures
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update profile info: account.updateProfile
-
-* Update the username of a supergroup/channel: channels.updateUsername
-
-* Update this user's username: account.updateUsername
-
-* Upload profile photo: photos.uploadProfilePhoto
-
-* Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
-
diff --git a/old_docs/API_docs_v57/methods/account_changePhone.md b/old_docs/API_docs_v57/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/old_docs/API_docs_v57/methods/account_changePhone.md
+++ b/old_docs/API_docs_v57/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v57/methods/account_checkUsername.md b/old_docs/API_docs_v57/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v57/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v57/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v57/methods/account_confirmPhone.md b/old_docs/API_docs_v57/methods/account_confirmPhone.md
index b730c2dc..c114cd20 100644
--- a/old_docs/API_docs_v57/methods/account_confirmPhone.md
+++ b/old_docs/API_docs_v57/methods/account_confirmPhone.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = account.confirmPhone({phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_HASH_INVALID|Code hash invalid|
-|PHONE_CODE_EMPTY|phone_code is missing|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_HASH_INVALID|Code hash invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
diff --git a/old_docs/API_docs_v57/methods/account_getNotifySettings.md b/old_docs/API_docs_v57/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v57/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v57/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v57/methods/account_getPasswordSettings.md b/old_docs/API_docs_v57/methods/account_getPasswordSettings.md
index 8ebb78ee..8f878365 100644
--- a/old_docs/API_docs_v57/methods/account_getPasswordSettings.md
+++ b/old_docs/API_docs_v57/methods/account_getPasswordSettings.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+Get the current 2FA settings
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+### Return type: [account\_PasswordSettings](../types/account_PasswordSettings.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$account_PasswordSettings = $MadelineProto->account->getPasswordSettings(['current_password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+account_PasswordSettings = account.getPasswordSettings({current_password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v57/methods/account_getPrivacy.md b/old_docs/API_docs_v57/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/old_docs/API_docs_v57/methods/account_getPrivacy.md
+++ b/old_docs/API_docs_v57/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v57/methods/account_registerDevice.md b/old_docs/API_docs_v57/methods/account_registerDevice.md
index cf16c2a2..82a6cad9 100644
--- a/old_docs/API_docs_v57/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v57/methods/account_registerDevice.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({token_type=int, token='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v57/methods/account_reportPeer.md b/old_docs/API_docs_v57/methods/account_reportPeer.md
index a203c900..87b080eb 100644
--- a/old_docs/API_docs_v57/methods/account_reportPeer.md
+++ b/old_docs/API_docs_v57/methods/account_reportPeer.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.reportPeer({peer=InputPeer, reason=ReportReason, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v57/methods/account_resetAuthorization.md b/old_docs/API_docs_v57/methods/account_resetAuthorization.md
index c950992c..e8e8ecc4 100644
--- a/old_docs/API_docs_v57/methods/account_resetAuthorization.md
+++ b/old_docs/API_docs_v57/methods/account_resetAuthorization.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.resetAuthorization({hash=long, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v57/methods/account_sendChangePhoneCode.md b/old_docs/API_docs_v57/methods/account_sendChangePhoneCode.md
index d5be60ef..08e5e86e 100644
--- a/old_docs/API_docs_v57/methods/account_sendChangePhoneCode.md
+++ b/old_docs/API_docs_v57/methods/account_sendChangePhoneCode.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendChangePhoneCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v57/methods/account_sendConfirmPhoneCode.md b/old_docs/API_docs_v57/methods/account_sendConfirmPhoneCode.md
index 028a1fdc..9fa7b57e 100644
--- a/old_docs/API_docs_v57/methods/account_sendConfirmPhoneCode.md
+++ b/old_docs/API_docs_v57/methods/account_sendConfirmPhoneCode.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendConfirmPhoneCode({allow_flashcall=Bool, hash='string', current_number=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v57/methods/account_setAccountTTL.md b/old_docs/API_docs_v57/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/old_docs/API_docs_v57/methods/account_setAccountTTL.md
+++ b/old_docs/API_docs_v57/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/old_docs/API_docs_v57/methods/account_setPrivacy.md b/old_docs/API_docs_v57/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/old_docs/API_docs_v57/methods/account_setPrivacy.md
+++ b/old_docs/API_docs_v57/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v57/methods/account_unregisterDevice.md b/old_docs/API_docs_v57/methods/account_unregisterDevice.md
index 589f48b0..a184da43 100644
--- a/old_docs/API_docs_v57/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v57/methods/account_unregisterDevice.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v57/methods/account_updateNotifySettings.md b/old_docs/API_docs_v57/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v57/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v57/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v57/methods/account_updatePasswordSettings.md b/old_docs/API_docs_v57/methods/account_updatePasswordSettings.md
index 80f27228..68e5da6d 100644
--- a/old_docs/API_docs_v57/methods/account_updatePasswordSettings.md
+++ b/old_docs/API_docs_v57/methods/account_updatePasswordSettings.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+|new\_settings|[account\_PasswordInputSettings](../types/account_PasswordInputSettings.md) | New 2FA settings | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->account->updatePasswordSettings(['current_password_hash' => 'bytes', 'new_settings' => account_PasswordInputSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = account.updatePasswordSettings({current_password_hash='bytes', new_settings=account_PasswordInputSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EMAIL_UNCONFIRMED|Email unconfirmed|
+|400|EMAIL_UNCONFIRMED_X|The provided email isn't confirmed, X is the length of the verification code that was just sent to the email.|
+|400|NEW_SALT_INVALID|The new salt is invalid|
+|400|NEW_SETTINGS_INVALID|The new settings are invalid|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v57/methods/account_updateProfile.md b/old_docs/API_docs_v57/methods/account_updateProfile.md
index af5b6a0f..0d74c5e5 100644
--- a/old_docs/API_docs_v57/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v57/methods/account_updateProfile.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v57/methods/account_updateStatus.md b/old_docs/API_docs_v57/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v57/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v57/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v57/methods/account_updateUsername.md b/old_docs/API_docs_v57/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v57/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v57/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v57/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v57/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v57/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v57/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v57/methods/auth_cancelCode.md b/old_docs/API_docs_v57/methods/auth_cancelCode.md
index fcbd7713..a69e0118 100644
--- a/old_docs/API_docs_v57/methods/auth_cancelCode.md
+++ b/old_docs/API_docs_v57/methods/auth_cancelCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = auth.cancelCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v57/methods/auth_checkPassword.md b/old_docs/API_docs_v57/methods/auth_checkPassword.md
index 8d76c483..db65cb56 100644
--- a/old_docs/API_docs_v57/methods/auth_checkPassword.md
+++ b/old_docs/API_docs_v57/methods/auth_checkPassword.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->checkPassword(['password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.checkPassword({password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v57/methods/auth_checkPhone.md b/old_docs/API_docs_v57/methods/auth_checkPhone.md
index f3e32365..e974ce7f 100644
--- a/old_docs/API_docs_v57/methods/auth_checkPhone.md
+++ b/old_docs/API_docs_v57/methods/auth_checkPhone.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
auth_CheckedPhone = auth.checkPhone({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v57/methods/auth_exportAuthorization.md b/old_docs/API_docs_v57/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v57/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v57/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v57/methods/auth_importAuthorization.md b/old_docs/API_docs_v57/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v57/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v57/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v57/methods/auth_importBotAuthorization.md b/old_docs/API_docs_v57/methods/auth_importBotAuthorization.md
index 1a98c1b9..98a2f8ca 100644
--- a/old_docs/API_docs_v57/methods/auth_importBotAuthorization.md
+++ b/old_docs/API_docs_v57/methods/auth_importBotAuthorization.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|api\_id|[int](../types/int.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_hash|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|bot\_auth\_token|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importBotAuthorization(['api_id' => int, 'api_hash' => 'string', 'bot_auth_token' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importBotAuthorization({api_id=int, api_hash='string', bot_auth_token='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ACCESS_TOKEN_EXPIRED|Access token expired|
+|400|ACCESS_TOKEN_INVALID|Access token invalid|
+|400|API_ID_INVALID|API ID invalid|
diff --git a/old_docs/API_docs_v57/methods/auth_logOut.md b/old_docs/API_docs_v57/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v57/methods/auth_logOut.md
+++ b/old_docs/API_docs_v57/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v57/methods/auth_recoverPassword.md b/old_docs/API_docs_v57/methods/auth_recoverPassword.md
index 83ff5aed..d4bad9c5 100644
--- a/old_docs/API_docs_v57/methods/auth_recoverPassword.md
+++ b/old_docs/API_docs_v57/methods/auth_recoverPassword.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
auth_Authorization = auth.recoverPassword({code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_EMPTY|The provided code is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_EMPTY|The provided code is empty|
diff --git a/old_docs/API_docs_v57/methods/auth_requestPasswordRecovery.md b/old_docs/API_docs_v57/methods/auth_requestPasswordRecovery.md
index 1864bbb0..b6ad57ba 100644
--- a/old_docs/API_docs_v57/methods/auth_requestPasswordRecovery.md
+++ b/old_docs/API_docs_v57/methods/auth_requestPasswordRecovery.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
auth_PasswordRecovery = auth.requestPasswordRecovery({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_EMPTY|The provided password is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_EMPTY|The provided password is empty|
diff --git a/old_docs/API_docs_v57/methods/auth_resendCode.md b/old_docs/API_docs_v57/methods/auth_resendCode.md
index ff7868ea..ec730d75 100644
--- a/old_docs/API_docs_v57/methods/auth_resendCode.md
+++ b/old_docs/API_docs_v57/methods/auth_resendCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = auth.resendCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v57/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v57/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v57/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v57/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v57/methods/auth_sendCode.md b/old_docs/API_docs_v57/methods/auth_sendCode.md
index 9afebb55..1e9d1a4e 100644
--- a/old_docs/API_docs_v57/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v57/methods/auth_sendCode.md
@@ -7,8 +7,59 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|allow\_flashcall|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|current\_number|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['allow_flashcall' => Bool, 'phone_number' => 'string', 'current_number' => Bool, 'api_id' => int, 'api_hash' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, api_id=int, api_hash='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v57/methods/auth_sendInvites.md b/old_docs/API_docs_v57/methods/auth_sendInvites.md
index e10c1109..4c11023e 100644
--- a/old_docs/API_docs_v57/methods/auth_sendInvites.md
+++ b/old_docs/API_docs_v57/methods/auth_sendInvites.md
@@ -49,10 +49,10 @@ Bool = auth.sendInvites({phone_numbers={'string'}, message='string', })
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_EMPTY|The provided message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_EMPTY|The provided message is empty|
diff --git a/old_docs/API_docs_v57/methods/auth_signIn.md b/old_docs/API_docs_v57/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v57/methods/auth_signIn.md
+++ b/old_docs/API_docs_v57/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v57/methods/auth_signUp.md b/old_docs/API_docs_v57/methods/auth_signUp.md
index 15960145..31154486 100644
--- a/old_docs/API_docs_v57/methods/auth_signUp.md
+++ b/old_docs/API_docs_v57/methods/auth_signUp.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', phone_code='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v57/methods/channels_checkUsername.md b/old_docs/API_docs_v57/methods/channels_checkUsername.md
index 483a2f6f..52365d34 100644
--- a/old_docs/API_docs_v57/methods/channels_checkUsername.md
+++ b/old_docs/API_docs_v57/methods/channels_checkUsername.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Bool = channels.checkUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v57/methods/channels_createChannel.md b/old_docs/API_docs_v57/methods/channels_createChannel.md
index b924e6a6..ecaee0ef 100644
--- a/old_docs/API_docs_v57/methods/channels_createChannel.md
+++ b/old_docs/API_docs_v57/methods/channels_createChannel.md
@@ -45,12 +45,12 @@ Or, if you're into Lua:
Updates = channels.createChannel({broadcast=Bool, megagroup=Bool, title='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_TITLE_EMPTY|No chat title provided|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
+|406|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v57/methods/channels_deleteChannel.md b/old_docs/API_docs_v57/methods/channels_deleteChannel.md
index 53a9c23d..1b8d2d48 100644
--- a/old_docs/API_docs_v57/methods/channels_deleteChannel.md
+++ b/old_docs/API_docs_v57/methods/channels_deleteChannel.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Updates = channels.deleteChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v57/methods/channels_deleteMessages.md b/old_docs/API_docs_v57/methods/channels_deleteMessages.md
index f76a9ad1..463ebad0 100644
--- a/old_docs/API_docs_v57/methods/channels_deleteMessages.md
+++ b/old_docs/API_docs_v57/methods/channels_deleteMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_AffectedMessages = channels.deleteMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v57/methods/channels_deleteUserHistory.md b/old_docs/API_docs_v57/methods/channels_deleteUserHistory.md
index 0a4e7d82..33905a7e 100644
--- a/old_docs/API_docs_v57/methods/channels_deleteUserHistory.md
+++ b/old_docs/API_docs_v57/methods/channels_deleteUserHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedHistory = channels.deleteUserHistory({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v57/methods/channels_editAbout.md b/old_docs/API_docs_v57/methods/channels_editAbout.md
index 47111668..d5e090e0 100644
--- a/old_docs/API_docs_v57/methods/channels_editAbout.md
+++ b/old_docs/API_docs_v57/methods/channels_editAbout.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Bool = channels.editAbout({channel=InputChannel, about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
-|CHAT_ABOUT_TOO_LONG|Chat about too long|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
+|400|CHAT_ABOUT_TOO_LONG|Chat about too long|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v57/methods/channels_editAdmin.md b/old_docs/API_docs_v57/methods/channels_editAdmin.md
index 3fbaf64d..229318fb 100644
--- a/old_docs/API_docs_v57/methods/channels_editAdmin.md
+++ b/old_docs/API_docs_v57/methods/channels_editAdmin.md
@@ -44,19 +44,19 @@ Or, if you're into Lua:
Updates = channels.editAdmin({channel=InputChannel, user_id=InputUser, role=ChannelParticipantRole, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ADMINS_TOO_MUCH|There are too many admins|
-|BOT_CHANNELS_NA|Bots can't edit admin privileges|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
-|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ADMINS_TOO_MUCH|There are too many admins|
+|400|BOT_CHANNELS_NA|Bots can't edit admin privileges|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
+|403|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v57/methods/channels_editPhoto.md b/old_docs/API_docs_v57/methods/channels_editPhoto.md
index bec0ba48..caef32d5 100644
--- a/old_docs/API_docs_v57/methods/channels_editPhoto.md
+++ b/old_docs/API_docs_v57/methods/channels_editPhoto.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editPhoto({channel=InputChannel, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|PHOTO_INVALID|Photo invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|PHOTO_INVALID|Photo invalid|
diff --git a/old_docs/API_docs_v57/methods/channels_editTitle.md b/old_docs/API_docs_v57/methods/channels_editTitle.md
index b5efeb39..d7cb33da 100644
--- a/old_docs/API_docs_v57/methods/channels_editTitle.md
+++ b/old_docs/API_docs_v57/methods/channels_editTitle.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editTitle({channel=InputChannel, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v57/methods/channels_exportInvite.md b/old_docs/API_docs_v57/methods/channels_exportInvite.md
index 0918b3e7..9d578deb 100644
--- a/old_docs/API_docs_v57/methods/channels_exportInvite.md
+++ b/old_docs/API_docs_v57/methods/channels_exportInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ExportedChatInvite = channels.exportInvite({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INVITE_HASH_EXPIRED|The invite link has expired|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
diff --git a/old_docs/API_docs_v57/methods/channels_exportMessageLink.md b/old_docs/API_docs_v57/methods/channels_exportMessageLink.md
index 66cd7584..2e92ee5e 100644
--- a/old_docs/API_docs_v57/methods/channels_exportMessageLink.md
+++ b/old_docs/API_docs_v57/methods/channels_exportMessageLink.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
ExportedMessageLink = channels.exportMessageLink({channel=InputChannel, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v57/methods/channels_getChannels.md b/old_docs/API_docs_v57/methods/channels_getChannels.md
index 78d50641..95d7a188 100644
--- a/old_docs/API_docs_v57/methods/channels_getChannels.md
+++ b/old_docs/API_docs_v57/methods/channels_getChannels.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = channels.getChannels({id={InputChannel}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v57/methods/channels_getFullChannel.md b/old_docs/API_docs_v57/methods/channels_getFullChannel.md
index 45a8ec72..ebd53de4 100644
--- a/old_docs/API_docs_v57/methods/channels_getFullChannel.md
+++ b/old_docs/API_docs_v57/methods/channels_getFullChannel.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->channels->getFullChannel(['channel' => InputChannel, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = channels.getFullChannel({channel=InputChannel, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v57/methods/channels_getMessages.md b/old_docs/API_docs_v57/methods/channels_getMessages.md
index aa85d640..57bcc60f 100644
--- a/old_docs/API_docs_v57/methods/channels_getMessages.md
+++ b/old_docs/API_docs_v57/methods/channels_getMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_Messages = channels.getMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
diff --git a/old_docs/API_docs_v57/methods/channels_getParticipant.md b/old_docs/API_docs_v57/methods/channels_getParticipant.md
index 6633114f..808156fd 100644
--- a/old_docs/API_docs_v57/methods/channels_getParticipant.md
+++ b/old_docs/API_docs_v57/methods/channels_getParticipant.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
channels_ChannelParticipant = channels.getParticipant({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v57/methods/channels_getParticipants.md b/old_docs/API_docs_v57/methods/channels_getParticipants.md
index d4bd8779..21d4a418 100644
--- a/old_docs/API_docs_v57/methods/channels_getParticipants.md
+++ b/old_docs/API_docs_v57/methods/channels_getParticipants.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, filter=ChannelParticipantsFilter, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v57/methods/channels_inviteToChannel.md b/old_docs/API_docs_v57/methods/channels_inviteToChannel.md
index f7093f13..d8c5e88a 100644
--- a/old_docs/API_docs_v57/methods/channels_inviteToChannel.md
+++ b/old_docs/API_docs_v57/methods/channels_inviteToChannel.md
@@ -43,25 +43,25 @@ Or, if you're into Lua:
Updates = channels.inviteToChannel({channel=InputChannel, users={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
-|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_BLOCKED|User blocked|
-|USER_BOT|Bots can only be admins in channels.|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_KICKED|This user was kicked from this supergroup/channel|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
+|400|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_BLOCKED|User blocked|
+|400|USER_BOT|Bots can only be admins in channels.|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_KICKED|This user was kicked from this supergroup/channel|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v57/methods/channels_joinChannel.md b/old_docs/API_docs_v57/methods/channels_joinChannel.md
index b056031a..a4a7c177 100644
--- a/old_docs/API_docs_v57/methods/channels_joinChannel.md
+++ b/old_docs/API_docs_v57/methods/channels_joinChannel.md
@@ -42,15 +42,15 @@ Or, if you're into Lua:
Updates = channels.joinChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
diff --git a/old_docs/API_docs_v57/methods/channels_leaveChannel.md b/old_docs/API_docs_v57/methods/channels_leaveChannel.md
index fdea13ba..6538d443 100644
--- a/old_docs/API_docs_v57/methods/channels_leaveChannel.md
+++ b/old_docs/API_docs_v57/methods/channels_leaveChannel.md
@@ -42,14 +42,14 @@ Or, if you're into Lua:
Updates = channels.leaveChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
-|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
diff --git a/old_docs/API_docs_v57/methods/channels_readHistory.md b/old_docs/API_docs_v57/methods/channels_readHistory.md
index 93dc075f..3532dae0 100644
--- a/old_docs/API_docs_v57/methods/channels_readHistory.md
+++ b/old_docs/API_docs_v57/methods/channels_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readHistory({channel=InputChannel, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v57/methods/channels_reportSpam.md b/old_docs/API_docs_v57/methods/channels_reportSpam.md
index db80676a..7e273cc5 100644
--- a/old_docs/API_docs_v57/methods/channels_reportSpam.md
+++ b/old_docs/API_docs_v57/methods/channels_reportSpam.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
Bool = channels.reportSpam({channel=InputChannel, user_id=InputUser, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
diff --git a/old_docs/API_docs_v57/methods/channels_toggleInvites.md b/old_docs/API_docs_v57/methods/channels_toggleInvites.md
index e5d3fba1..6266d30b 100644
--- a/old_docs/API_docs_v57/methods/channels_toggleInvites.md
+++ b/old_docs/API_docs_v57/methods/channels_toggleInvites.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.toggleInvites({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v57/methods/channels_toggleSignatures.md b/old_docs/API_docs_v57/methods/channels_toggleSignatures.md
index cdfc0fda..f8624946 100644
--- a/old_docs/API_docs_v57/methods/channels_toggleSignatures.md
+++ b/old_docs/API_docs_v57/methods/channels_toggleSignatures.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = channels.toggleSignatures({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v57/methods/channels_updatePinnedMessage.md b/old_docs/API_docs_v57/methods/channels_updatePinnedMessage.md
index 53733a22..37d7c3c0 100644
--- a/old_docs/API_docs_v57/methods/channels_updatePinnedMessage.md
+++ b/old_docs/API_docs_v57/methods/channels_updatePinnedMessage.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = channels.updatePinnedMessage({silent=Bool, channel=InputChannel, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v57/methods/channels_updateUsername.md b/old_docs/API_docs_v57/methods/channels_updateUsername.md
index 677712f9..48d250e6 100644
--- a/old_docs/API_docs_v57/methods/channels_updateUsername.md
+++ b/old_docs/API_docs_v57/methods/channels_updateUsername.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Bool = channels.updateUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_OCCUPIED|The provided username is already occupied|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
diff --git a/old_docs/API_docs_v57/methods/contacts_block.md b/old_docs/API_docs_v57/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v57/methods/contacts_block.md
+++ b/old_docs/API_docs_v57/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v57/methods/contacts_deleteContact.md b/old_docs/API_docs_v57/methods/contacts_deleteContact.md
index ba9569e4..a9321d64 100644
--- a/old_docs/API_docs_v57/methods/contacts_deleteContact.md
+++ b/old_docs/API_docs_v57/methods/contacts_deleteContact.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
contacts_Link = contacts.deleteContact({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v57/methods/contacts_deleteContacts.md b/old_docs/API_docs_v57/methods/contacts_deleteContacts.md
index bfc91fdd..3c8e90f0 100644
--- a/old_docs/API_docs_v57/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v57/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v57/methods/contacts_getStatuses.md b/old_docs/API_docs_v57/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v57/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v57/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v57/methods/contacts_getTopPeers.md b/old_docs/API_docs_v57/methods/contacts_getTopPeers.md
index 0552f184..1aba4f85 100644
--- a/old_docs/API_docs_v57/methods/contacts_getTopPeers.md
+++ b/old_docs/API_docs_v57/methods/contacts_getTopPeers.md
@@ -49,10 +49,10 @@ Or, if you're into Lua:
contacts_TopPeers = contacts.getTopPeers({correspondents=Bool, bots_pm=Bool, bots_inline=Bool, groups=Bool, channels=Bool, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TYPES_EMPTY|No top peer type was provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TYPES_EMPTY|No top peer type was provided|
diff --git a/old_docs/API_docs_v57/methods/contacts_importCard.md b/old_docs/API_docs_v57/methods/contacts_importCard.md
index 15addde1..ed3d17fe 100644
--- a/old_docs/API_docs_v57/methods/contacts_importCard.md
+++ b/old_docs/API_docs_v57/methods/contacts_importCard.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
User = contacts.importCard({export_card={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|EXPORT_CARD_INVALID|Provided card is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EXPORT_CARD_INVALID|Provided card is invalid|
diff --git a/old_docs/API_docs_v57/methods/contacts_resetTopPeerRating.md b/old_docs/API_docs_v57/methods/contacts_resetTopPeerRating.md
index 43cf1685..787be177 100644
--- a/old_docs/API_docs_v57/methods/contacts_resetTopPeerRating.md
+++ b/old_docs/API_docs_v57/methods/contacts_resetTopPeerRating.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = contacts.resetTopPeerRating({category=TopPeerCategory, peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v57/methods/contacts_resolveUsername.md b/old_docs/API_docs_v57/methods/contacts_resolveUsername.md
index fab56bb1..68f709db 100644
--- a/old_docs/API_docs_v57/methods/contacts_resolveUsername.md
+++ b/old_docs/API_docs_v57/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [contacts\_ResolvedPeer](../types/contacts_ResolvedPeer.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$contacts_ResolvedPeer = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+contacts_ResolvedPeer = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v57/methods/contacts_search.md b/old_docs/API_docs_v57/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v57/methods/contacts_search.md
+++ b/old_docs/API_docs_v57/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v57/methods/contacts_unblock.md b/old_docs/API_docs_v57/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v57/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v57/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v57/methods/help_getConfig.md b/old_docs/API_docs_v57/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v57/methods/help_getConfig.md
+++ b/old_docs/API_docs_v57/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v57/methods/initConnection.md b/old_docs/API_docs_v57/methods/initConnection.md
index 659f4e6b..a41f0c4d 100644
--- a/old_docs/API_docs_v57/methods/initConnection.md
+++ b/old_docs/API_docs_v57/methods/initConnection.md
@@ -47,11 +47,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', lang_code='string', query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v57/methods/invokeWithLayer.md b/old_docs/API_docs_v57/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/old_docs/API_docs_v57/methods/invokeWithLayer.md
+++ b/old_docs/API_docs_v57/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v57/methods/messages_acceptEncryption.md b/old_docs/API_docs_v57/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v57/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v57/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v57/methods/messages_addChatUser.md b/old_docs/API_docs_v57/methods/messages_addChatUser.md
index bc0d6253..b5e164b2 100644
--- a/old_docs/API_docs_v57/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v57/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
Updates = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v57/methods/messages_checkChatInvite.md b/old_docs/API_docs_v57/methods/messages_checkChatInvite.md
index de28b09b..0d13d55e 100644
--- a/old_docs/API_docs_v57/methods/messages_checkChatInvite.md
+++ b/old_docs/API_docs_v57/methods/messages_checkChatInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ChatInvite = messages.checkChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
diff --git a/old_docs/API_docs_v57/methods/messages_createChat.md b/old_docs/API_docs_v57/methods/messages_createChat.md
index 8f6e9672..b2623f1d 100644
--- a/old_docs/API_docs_v57/methods/messages_createChat.md
+++ b/old_docs/API_docs_v57/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v57/methods/messages_deleteChatUser.md b/old_docs/API_docs_v57/methods/messages_deleteChatUser.md
index 63529571..11b9b220 100644
--- a/old_docs/API_docs_v57/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v57/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v57/methods/messages_deleteHistory.md b/old_docs/API_docs_v57/methods/messages_deleteHistory.md
index 2ade177e..338c2cdf 100644
--- a/old_docs/API_docs_v57/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v57/methods/messages_deleteHistory.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({just_clear=Bool, peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v57/methods/messages_deleteMessages.md b/old_docs/API_docs_v57/methods/messages_deleteMessages.md
index 6df3ffec..a0d79592 100644
--- a/old_docs/API_docs_v57/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v57/methods/messages_deleteMessages.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.deleteMessages({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v57/methods/messages_discardEncryption.md b/old_docs/API_docs_v57/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v57/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v57/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v57/methods/messages_editChatAdmin.md b/old_docs/API_docs_v57/methods/messages_editChatAdmin.md
index 2b4dc94c..6f6c1376 100644
--- a/old_docs/API_docs_v57/methods/messages_editChatAdmin.md
+++ b/old_docs/API_docs_v57/methods/messages_editChatAdmin.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.editChatAdmin({chat_id=InputPeer, user_id=InputUser, is_admin=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v57/methods/messages_editChatPhoto.md b/old_docs/API_docs_v57/methods/messages_editChatPhoto.md
index 2a82c232..a21a03b9 100644
--- a/old_docs/API_docs_v57/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v57/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Updates = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v57/methods/messages_editChatTitle.md b/old_docs/API_docs_v57/methods/messages_editChatTitle.md
index 2c338ad6..72f78741 100644
--- a/old_docs/API_docs_v57/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v57/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v57/methods/messages_editInlineBotMessage.md b/old_docs/API_docs_v57/methods/messages_editInlineBotMessage.md
index f22642f2..c274cbb9 100644
--- a/old_docs/API_docs_v57/methods/messages_editInlineBotMessage.md
+++ b/old_docs/API_docs_v57/methods/messages_editInlineBotMessage.md
@@ -95,11 +95,11 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
diff --git a/old_docs/API_docs_v57/methods/messages_editMessage.md b/old_docs/API_docs_v57/methods/messages_editMessage.md
index 05fee4b3..d3ce5261 100644
--- a/old_docs/API_docs_v57/methods/messages_editMessage.md
+++ b/old_docs/API_docs_v57/methods/messages_editMessage.md
@@ -96,20 +96,20 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v57/methods/messages_exportChatInvite.md b/old_docs/API_docs_v57/methods/messages_exportChatInvite.md
index f3449e79..bc6272e4 100644
--- a/old_docs/API_docs_v57/methods/messages_exportChatInvite.md
+++ b/old_docs/API_docs_v57/methods/messages_exportChatInvite.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
ExportedChatInvite = messages.exportChatInvite({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v57/methods/messages_forwardMessage.md b/old_docs/API_docs_v57/methods/messages_forwardMessage.md
index c8e0b18d..95f6d2f3 100644
--- a/old_docs/API_docs_v57/methods/messages_forwardMessage.md
+++ b/old_docs/API_docs_v57/methods/messages_forwardMessage.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Updates = messages.forwardMessage({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|YOU_BLOCKED_USER|You blocked this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|YOU_BLOCKED_USER|You blocked this user|
diff --git a/old_docs/API_docs_v57/methods/messages_forwardMessages.md b/old_docs/API_docs_v57/methods/messages_forwardMessages.md
index db772b23..2d751dcb 100644
--- a/old_docs/API_docs_v57/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v57/methods/messages_forwardMessages.md
@@ -47,29 +47,29 @@ Or, if you're into Lua:
Updates = messages.forwardMessages({silent=Bool, background=Bool, with_my_score=Bool, from_peer=InputPeer, id={int}, to_peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v57/methods/messages_getBotCallbackAnswer.md b/old_docs/API_docs_v57/methods/messages_getBotCallbackAnswer.md
index f97fa5b0..3f8cc23b 100644
--- a/old_docs/API_docs_v57/methods/messages_getBotCallbackAnswer.md
+++ b/old_docs/API_docs_v57/methods/messages_getBotCallbackAnswer.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
messages_BotCallbackAnswer = messages.getBotCallbackAnswer({game=Bool, peer=InputPeer, msg_id=int, data='bytes', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v57/methods/messages_getChats.md b/old_docs/API_docs_v57/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/old_docs/API_docs_v57/methods/messages_getChats.md
+++ b/old_docs/API_docs_v57/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v57/methods/messages_getDhConfig.md b/old_docs/API_docs_v57/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v57/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v57/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v57/methods/messages_getDialogs.md b/old_docs/API_docs_v57/methods/messages_getDialogs.md
index 024b0068..8d8522d5 100644
--- a/old_docs/API_docs_v57/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v57/methods/messages_getDialogs.md
@@ -45,13 +45,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({offset_date=int, offset_id=int, offset_peer=InputPeer, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v57/methods/messages_getDocumentByHash.md b/old_docs/API_docs_v57/methods/messages_getDocumentByHash.md
index 73a235d5..06469c52 100644
--- a/old_docs/API_docs_v57/methods/messages_getDocumentByHash.md
+++ b/old_docs/API_docs_v57/methods/messages_getDocumentByHash.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Document = messages.getDocumentByHash({sha256='bytes', size=int, mime_type='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
diff --git a/old_docs/API_docs_v57/methods/messages_getFullChat.md b/old_docs/API_docs_v57/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v57/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v57/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v57/methods/messages_getGameHighScores.md b/old_docs/API_docs_v57/methods/messages_getGameHighScores.md
index 249e1d09..5c484bbb 100644
--- a/old_docs/API_docs_v57/methods/messages_getGameHighScores.md
+++ b/old_docs/API_docs_v57/methods/messages_getGameHighScores.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
messages_HighScores = messages.getGameHighScores({peer=InputPeer, id=int, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v57/methods/messages_getHistory.md b/old_docs/API_docs_v57/methods/messages_getHistory.md
index ced9753f..68f746ba 100644
--- a/old_docs/API_docs_v57/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v57/methods/messages_getHistory.md
@@ -48,16 +48,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset_id=int, offset_date=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v57/methods/messages_getInlineBotResults.md b/old_docs/API_docs_v57/methods/messages_getInlineBotResults.md
index 1efcb412..17d678b7 100644
--- a/old_docs/API_docs_v57/methods/messages_getInlineBotResults.md
+++ b/old_docs/API_docs_v57/methods/messages_getInlineBotResults.md
@@ -46,13 +46,13 @@ Or, if you're into Lua:
messages_BotResults = messages.getInlineBotResults({bot=InputUser, peer=InputPeer, geo_point=InputGeoPoint, query='string', offset='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
-|BOT_INVALID|This is not a valid bot|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
+|400|BOT_INVALID|This is not a valid bot|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v57/methods/messages_getInlineGameHighScores.md b/old_docs/API_docs_v57/methods/messages_getInlineGameHighScores.md
index e68c6db8..ac33b6b8 100644
--- a/old_docs/API_docs_v57/methods/messages_getInlineGameHighScores.md
+++ b/old_docs/API_docs_v57/methods/messages_getInlineGameHighScores.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_HighScores = messages.getInlineGameHighScores({id=InputBotInlineMessageID, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v57/methods/messages_getMessageEditData.md b/old_docs/API_docs_v57/methods/messages_getMessageEditData.md
index 7f1b7164..b907d78c 100644
--- a/old_docs/API_docs_v57/methods/messages_getMessageEditData.md
+++ b/old_docs/API_docs_v57/methods/messages_getMessageEditData.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_MessageEditData = messages.getMessageEditData({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v57/methods/messages_getMessagesViews.md b/old_docs/API_docs_v57/methods/messages_getMessagesViews.md
index 3d490315..143e568c 100644
--- a/old_docs/API_docs_v57/methods/messages_getMessagesViews.md
+++ b/old_docs/API_docs_v57/methods/messages_getMessagesViews.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
Vector_of_int = messages.getMessagesViews({peer=InputPeer, id={int}, increment=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v57/methods/messages_getPeerDialogs.md b/old_docs/API_docs_v57/methods/messages_getPeerDialogs.md
index 6811001a..0c770183 100644
--- a/old_docs/API_docs_v57/methods/messages_getPeerDialogs.md
+++ b/old_docs/API_docs_v57/methods/messages_getPeerDialogs.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPeerDialogs({peers={InputPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v57/methods/messages_getPeerSettings.md b/old_docs/API_docs_v57/methods/messages_getPeerSettings.md
index 26dafb9b..69032ff5 100644
--- a/old_docs/API_docs_v57/methods/messages_getPeerSettings.md
+++ b/old_docs/API_docs_v57/methods/messages_getPeerSettings.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
PeerSettings = messages.getPeerSettings({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v57/methods/messages_getStickerSet.md b/old_docs/API_docs_v57/methods/messages_getStickerSet.md
index 57bce84d..487316cc 100644
--- a/old_docs/API_docs_v57/methods/messages_getStickerSet.md
+++ b/old_docs/API_docs_v57/methods/messages_getStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_StickerSet = messages.getStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v57/methods/messages_hideReportSpam.md b/old_docs/API_docs_v57/methods/messages_hideReportSpam.md
index c4bf7399..57756d2e 100644
--- a/old_docs/API_docs_v57/methods/messages_hideReportSpam.md
+++ b/old_docs/API_docs_v57/methods/messages_hideReportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.hideReportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v57/methods/messages_importChatInvite.md b/old_docs/API_docs_v57/methods/messages_importChatInvite.md
index 12120867..101b4b19 100644
--- a/old_docs/API_docs_v57/methods/messages_importChatInvite.md
+++ b/old_docs/API_docs_v57/methods/messages_importChatInvite.md
@@ -42,16 +42,16 @@ Or, if you're into Lua:
Updates = messages.importChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v57/methods/messages_installStickerSet.md b/old_docs/API_docs_v57/methods/messages_installStickerSet.md
index 21a57a85..67f2aca0 100644
--- a/old_docs/API_docs_v57/methods/messages_installStickerSet.md
+++ b/old_docs/API_docs_v57/methods/messages_installStickerSet.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_StickerSetInstallResult = messages.installStickerSet({stickerset=InputStickerSet, archived=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v57/methods/messages_migrateChat.md b/old_docs/API_docs_v57/methods/messages_migrateChat.md
index a72f4c11..ee4010eb 100644
--- a/old_docs/API_docs_v57/methods/messages_migrateChat.md
+++ b/old_docs/API_docs_v57/methods/messages_migrateChat.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
Updates = messages.migrateChat({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v57/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v57/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v57/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v57/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v57/methods/messages_readHistory.md b/old_docs/API_docs_v57/methods/messages_readHistory.md
index 2ad5cd09..a7f0eca7 100644
--- a/old_docs/API_docs_v57/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v57/methods/messages_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.readHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v57/methods/messages_receivedQueue.md b/old_docs/API_docs_v57/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v57/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v57/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v57/methods/messages_reportSpam.md b/old_docs/API_docs_v57/methods/messages_reportSpam.md
index e92fba13..dc256e55 100644
--- a/old_docs/API_docs_v57/methods/messages_reportSpam.md
+++ b/old_docs/API_docs_v57/methods/messages_reportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v57/methods/messages_requestEncryption.md b/old_docs/API_docs_v57/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v57/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v57/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v57/methods/messages_saveDraft.md b/old_docs/API_docs_v57/methods/messages_saveDraft.md
index 791ce234..ea6d407e 100644
--- a/old_docs/API_docs_v57/methods/messages_saveDraft.md
+++ b/old_docs/API_docs_v57/methods/messages_saveDraft.md
@@ -89,10 +89,10 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v57/methods/messages_saveGif.md b/old_docs/API_docs_v57/methods/messages_saveGif.md
index f504ff9e..010e17ec 100644
--- a/old_docs/API_docs_v57/methods/messages_saveGif.md
+++ b/old_docs/API_docs_v57/methods/messages_saveGif.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.saveGif({id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|GIF_ID_INVALID|The provided GIF ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|GIF_ID_INVALID|The provided GIF ID is invalid|
diff --git a/old_docs/API_docs_v57/methods/messages_saveRecentSticker.md b/old_docs/API_docs_v57/methods/messages_saveRecentSticker.md
index 98c74efd..072b6fe9 100644
--- a/old_docs/API_docs_v57/methods/messages_saveRecentSticker.md
+++ b/old_docs/API_docs_v57/methods/messages_saveRecentSticker.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.saveRecentSticker({attached=Bool, id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v57/methods/messages_search.md b/old_docs/API_docs_v57/methods/messages_search.md
index 5f5480cc..dc1b6934 100644
--- a/old_docs/API_docs_v57/methods/messages_search.md
+++ b/old_docs/API_docs_v57/methods/messages_search.md
@@ -49,16 +49,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({peer=InputPeer, q='string', filter=MessagesFilter, min_date=int, max_date=int, offset=int, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v57/methods/messages_searchGifs.md b/old_docs/API_docs_v57/methods/messages_searchGifs.md
index 7be4173b..1602d35e 100644
--- a/old_docs/API_docs_v57/methods/messages_searchGifs.md
+++ b/old_docs/API_docs_v57/methods/messages_searchGifs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_FoundGifs = messages.searchGifs({q='string', offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v57/methods/messages_searchGlobal.md b/old_docs/API_docs_v57/methods/messages_searchGlobal.md
index fb38398b..c8da163c 100644
--- a/old_docs/API_docs_v57/methods/messages_searchGlobal.md
+++ b/old_docs/API_docs_v57/methods/messages_searchGlobal.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
messages_Messages = messages.searchGlobal({q='string', offset_date=int, offset_peer=InputPeer, offset_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v57/methods/messages_sendEncrypted.md b/old_docs/API_docs_v57/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v57/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v57/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v57/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v57/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v57/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v57/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v57/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v57/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v57/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v57/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v57/methods/messages_sendInlineBotResult.md b/old_docs/API_docs_v57/methods/messages_sendInlineBotResult.md
index 9ffa02ae..a2b57f4d 100644
--- a/old_docs/API_docs_v57/methods/messages_sendInlineBotResult.md
+++ b/old_docs/API_docs_v57/methods/messages_sendInlineBotResult.md
@@ -48,15 +48,15 @@ Or, if you're into Lua:
Updates = messages.sendInlineBotResult({silent=Bool, background=Bool, clear_draft=Bool, peer=InputPeer, reply_to_msg_id=int, query_id=long, id='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INLINE_RESULT_EXPIRED|The inline query expired|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|QUERY_ID_EMPTY|The query ID is empty|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INLINE_RESULT_EXPIRED|The inline query expired|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|QUERY_ID_EMPTY|The query ID is empty|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v57/methods/messages_sendMedia.md b/old_docs/API_docs_v57/methods/messages_sendMedia.md
index 89dc5572..9bfd0743 100644
--- a/old_docs/API_docs_v57/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v57/methods/messages_sendMedia.md
@@ -54,31 +54,31 @@ Updates = messages.sendMedia({silent=Bool, background=Bool, clear_draft=Bool, pe
You can provide bot API reply_markup objects here.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v57/methods/messages_sendMessage.md b/old_docs/API_docs_v57/methods/messages_sendMessage.md
index 5641ebc3..e0ab305d 100644
--- a/old_docs/API_docs_v57/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v57/methods/messages_sendMessage.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v57/methods/messages_setBotCallbackAnswer.md b/old_docs/API_docs_v57/methods/messages_setBotCallbackAnswer.md
index 6b1f79a3..77824bb1 100644
--- a/old_docs/API_docs_v57/methods/messages_setBotCallbackAnswer.md
+++ b/old_docs/API_docs_v57/methods/messages_setBotCallbackAnswer.md
@@ -51,11 +51,11 @@ Bool = messages.setBotCallbackAnswer({alert=Bool, query_id=long, message='string
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|URL_INVALID|Invalid URL provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|URL_INVALID|Invalid URL provided|
diff --git a/old_docs/API_docs_v57/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v57/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v57/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v57/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v57/methods/messages_setGameScore.md b/old_docs/API_docs_v57/methods/messages_setGameScore.md
index 707c30aa..ba88a587 100644
--- a/old_docs/API_docs_v57/methods/messages_setGameScore.md
+++ b/old_docs/API_docs_v57/methods/messages_setGameScore.md
@@ -46,12 +46,12 @@ Or, if you're into Lua:
Updates = messages.setGameScore({edit_message=Bool, peer=InputPeer, id=int, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v57/methods/messages_setInlineBotResults.md b/old_docs/API_docs_v57/methods/messages_setInlineBotResults.md
index ab388e39..df4c30d4 100644
--- a/old_docs/API_docs_v57/methods/messages_setInlineBotResults.md
+++ b/old_docs/API_docs_v57/methods/messages_setInlineBotResults.md
@@ -48,23 +48,23 @@ Or, if you're into Lua:
Bool = messages.setInlineBotResults({gallery=Bool, private=Bool, query_id=long, results={InputBotInlineResult}, cache_time=int, next_offset='string', switch_pm=InlineBotSwitchPM, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ARTICLE_TITLE_EMPTY|The title of the article is empty|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|PHOTO_INVALID|Photo invalid|
-|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
-|QUERY_ID_INVALID|The query ID is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|RESULT_TYPE_INVALID|Result type invalid|
-|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
-|START_PARAM_INVALID|Start parameter invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ARTICLE_TITLE_EMPTY|The title of the article is empty|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|PHOTO_INVALID|Photo invalid|
+|400|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|RESULT_TYPE_INVALID|Result type invalid|
+|400|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
+|400|START_PARAM_INVALID|Start parameter invalid|
+|403|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v57/methods/messages_setInlineGameScore.md b/old_docs/API_docs_v57/methods/messages_setInlineGameScore.md
index 5f30ae02..4740eecf 100644
--- a/old_docs/API_docs_v57/methods/messages_setInlineGameScore.md
+++ b/old_docs/API_docs_v57/methods/messages_setInlineGameScore.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
Bool = messages.setInlineGameScore({edit_message=Bool, id=InputBotInlineMessageID, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v57/methods/messages_setTyping.md b/old_docs/API_docs_v57/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v57/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v57/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v57/methods/messages_startBot.md b/old_docs/API_docs_v57/methods/messages_startBot.md
index aa2b2d00..4bf12aa6 100644
--- a/old_docs/API_docs_v57/methods/messages_startBot.md
+++ b/old_docs/API_docs_v57/methods/messages_startBot.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = messages.startBot({bot=InputUser, peer=InputPeer, start_param='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INVALID|This is not a valid bot|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|START_PARAM_EMPTY|The start parameter is empty|
-|START_PARAM_INVALID|Start parameter invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INVALID|This is not a valid bot|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|START_PARAM_EMPTY|The start parameter is empty|
+|400|START_PARAM_INVALID|Start parameter invalid|
diff --git a/old_docs/API_docs_v57/methods/messages_toggleChatAdmins.md b/old_docs/API_docs_v57/methods/messages_toggleChatAdmins.md
index 7851806d..8ea6e65e 100644
--- a/old_docs/API_docs_v57/methods/messages_toggleChatAdmins.md
+++ b/old_docs/API_docs_v57/methods/messages_toggleChatAdmins.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.toggleChatAdmins({chat_id=InputPeer, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v57/methods/messages_uninstallStickerSet.md b/old_docs/API_docs_v57/methods/messages_uninstallStickerSet.md
index 59abc510..6b7a2006 100644
--- a/old_docs/API_docs_v57/methods/messages_uninstallStickerSet.md
+++ b/old_docs/API_docs_v57/methods/messages_uninstallStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.uninstallStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v57/methods/photos_getUserPhotos.md b/old_docs/API_docs_v57/methods/photos_getUserPhotos.md
index 57f5772b..a01f3180 100644
--- a/old_docs/API_docs_v57/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v57/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v57/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v57/methods/photos_updateProfilePhoto.md
index cca2fe30..f7c91ec6 100644
--- a/old_docs/API_docs_v57/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v57/methods/photos_updateProfilePhoto.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v57/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v57/methods/photos_uploadProfilePhoto.md
index 457bade8..badde2de 100644
--- a/old_docs/API_docs_v57/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v57/methods/photos_uploadProfilePhoto.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v57/methods/updates_getChannelDifference.md b/old_docs/API_docs_v57/methods/updates_getChannelDifference.md
index 6fa79529..08d497ed 100644
--- a/old_docs/API_docs_v57/methods/updates_getChannelDifference.md
+++ b/old_docs/API_docs_v57/methods/updates_getChannelDifference.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|filter|[ChannelMessagesFilter](../types/ChannelMessagesFilter.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_ChannelDifference](../types/updates_ChannelDifference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_ChannelDifference = $MadelineProto->updates->getChannelDifference(['channel' => InputChannel, 'filter' => ChannelMessagesFilter, 'pts' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_ChannelDifference = updates.getChannelDifference({channel=InputChannel, filter=ChannelMessagesFilter, pts=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|400|RANGES_INVALID|Invalid range provided|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v57/methods/updates_getDifference.md b/old_docs/API_docs_v57/methods/updates_getDifference.md
index 33e7d7f2..57ea6d99 100644
--- a/old_docs/API_docs_v57/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v57/methods/updates_getDifference.md
@@ -7,8 +7,54 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v57/methods/updates_getState.md b/old_docs/API_docs_v57/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v57/methods/updates_getState.md
+++ b/old_docs/API_docs_v57/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v57/methods/upload_getFile.md b/old_docs/API_docs_v57/methods/upload_getFile.md
index c72e6090..d8b433d6 100644
--- a/old_docs/API_docs_v57/methods/upload_getFile.md
+++ b/old_docs/API_docs_v57/methods/upload_getFile.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v57/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v57/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v57/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v57/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v57/methods/upload_saveFilePart.md b/old_docs/API_docs_v57/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v57/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v57/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v57/methods/users_getFullUser.md b/old_docs/API_docs_v57/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v57/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v57/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v57/methods/users_getUsers.md b/old_docs/API_docs_v57/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v57/methods/users_getUsers.md
+++ b/old_docs/API_docs_v57/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v62/methods/README.md b/old_docs/API_docs_v62/methods/README.md
index a0cbe9a9..a161eab6 100644
--- a/old_docs/API_docs_v62/methods/README.md
+++ b/old_docs/API_docs_v62/methods/README.md
@@ -30,341 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Add a sticker set: messages.installStickerSet
-
-* Add a sticker to recent stickers: messages.saveRecentSticker
-
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add phone number as contact: contacts.importContacts
-
-* Add users to channel/supergroup: channels.inviteToChannel
-
-* Allow or disallow any user to invite users to this channel/supergroup: channels.toggleInvites
-
-* Block a user: contacts.block
-
-* Bots only: set the callback answer (after a button was clicked): messages.setBotCallbackAnswer
-
-* Bots only: set the results of an inline query: messages.setInlineBotResults
-
-* Call inline bot: messages.getInlineBotResults
-
-* Change notification settings: account.updateNotifySettings
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if about to edit a message or a media caption: messages.getMessageEditData
-
-* Check if an invitation link is valid: messages.checkChatInvite
-
-* Check if this phone number is registered on telegram: auth.checkPhone
-
-* Check if this username is available: account.checkUsername
-
-* Check if this username is free and can be assigned to a channel/supergroup: channels.checkUsername
-
-* Clear all recent stickers: messages.clearRecentStickers
-
-* Confirm this phone number is associated to this account, obtain phone_code_hash from sendConfirmPhoneCode: account.confirmPhone
-
-* Convert chat to supergroup: messages.migrateChat
-
-* Create a chat (not supergroup): messages.createChat
-
-* Create channel/supergroup: channels.createChannel
-
-* Delete a certain session: account.resetAuthorization
-
-* Delete a channel/supergroup: channels.deleteChannel
-
-* Delete a contact: contacts.deleteContact
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete all messages of a user in a channel/supergroup: channels.deleteUserHistory
-
-* Delete all temporary authorization keys except the ones provided: auth.dropTempAuthKeys
-
-* Delete channel/supergroup messages: channels.deleteMessages
-
-* Delete chat history: messages.deleteHistory
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete this account: account.deleteAccount
-
-* Destroy current authorization key: destroy_auth_key
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Edit a message: messages.editMessage
-
-* Edit a sent inline message: messages.editInlineBotMessage
-
-* Edit admin permissions of a user in a channel/supergroup: channels.editAdmin
-
-* Edit admin permissions: messages.editChatAdmin
-
-* Edit the about text of a channel/supergroup: channels.editAbout
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the photo of a supergroup/channel: channels.editPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Edit the title of a supergroup/channel: channels.editTitle
-
-* Enable all users are admins in normal groups (not supergroups): messages.toggleChatAdmins
-
-* Export chat invite : messages.exportChatInvite
-
-* Export contact as card: contacts.exportCard
-
-* Export the invite link of a channel: channels.exportInvite
-
-* Forward message: messages.forwardMessage
-
-* Forward messages: messages.forwardMessages
-
-* Get a stickerset: messages.getStickerSet
-
-* Get account TTL: account.getAccountTTL
-
-* Get all archived stickers: messages.getArchivedStickers
-
-* Get all chats (not supergroups or channels): messages.getAllChats
-
-* Get all contacts: contacts.getContacts
-
-* Get all logged-in authorizations: account.getAuthorizations
-
-* Get all message drafts: messages.getAllDrafts
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get all supergroups/channels where you're admin: channels.getAdminedPublicChannels
-
-* Get and increase message views: messages.getMessagesViews
-
-* Get blocked users: contacts.getBlocked
-
-* Get channel/supergroup messages: channels.getMessages
-
-* Get channel/supergroup participants (you should use `$MadelineProto->get_pwr_chat($id)` instead): channels.getParticipants
-
-* Get chats in common with a user: messages.getCommonChats
-
-* Get dialog info of peers: messages.getPeerDialogs
-
-* Get document by SHA256 hash: messages.getDocumentByHash
-
-* Get featured stickers: messages.getFeaturedStickers
-
-* Get high scores of a game sent in an inline message: messages.getInlineGameHighScores
-
-* Get high scores of a game: messages.getGameHighScores
-
-* Get info about a certain channel/supergroup participant: channels.getParticipant
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about multiple channels/supergroups: channels.getChannels
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get invitation text: help.getInviteText
-
-* Get masks: messages.getMaskStickers
-
-* Get messages: messages.getMessages
-
-* Get most used chats: contacts.getTopPeers
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get pinned dialogs: messages.getPinnedDialogs
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get recent stickers: messages.getRecentStickers
-
-* Get saved gifs: messages.getSavedGifs
-
-* Get server configuration: help.getConfig
-
-* Get stickers attachable to images: messages.getAttachedStickers
-
-* Get terms of service: help.getTermsOfService
-
-* Get the callback answer of a bot (after clicking a button): messages.getBotCallbackAnswer
-
-* Get the changelog of this app: help.getAppChangelog
-
-* Get the current password: account.getPassword
-
-* Get the link of a message in a channel: channels.exportMessageLink
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Get the settings of apeer: messages.getPeerSettings
-
-* Get webpage preview: messages.getWebPage
-
-* Get webpage preview: messages.getWebPagePreview
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Global message search: messages.searchGlobal
-
-* Hide report spam popup: messages.hideReportSpam
-
-* Import card as contact: contacts.importCard
-
-* Import chat invite: messages.importChatInvite
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Invalidate sent phone code: auth.cancelCode
-
-* Invite friends to telegram!: auth.sendInvites
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invoke with method without returning updates in the socket: invokeWithoutUpdates
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Join a channel/supergroup: channels.joinChannel
-
-* Kick user from channel: channels.kickFromChannel
-
-* Leave a channel/supergroup: channels.leaveChannel
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark channel/supergroup history as read: channels.readHistory
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Mark new featured stickers as read: messages.readFeaturedStickers
-
-* Notify server that you received a call (server will refuse all incoming calls until the current call is over): phone.receivedCall
-
-* Pin or unpin dialog: messages.toggleDialogPin
-
-* Register device for push notifications: account.registerDevice
-
-* Remove a sticker set: messages.uninstallStickerSet
-
-* Reorder pinned dialogs: messages.reorderPinnedDialogs
-
-* Reorder sticker sets: messages.reorderStickerSets
-
-* Report a message in a supergroup/channel for spam: channels.reportSpam
-
-* Report a peer for spam: messages.reportSpam
-
-* Report for spam a secret chat: messages.reportEncryptedSpam
-
-* Report for spam: account.reportPeer
-
-* Resend the SMS verification code: auth.resendCode
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Reset top peer rating for a certain category/peer: contacts.resetTopPeerRating
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Save a GIF: messages.saveGif
-
-* Save a message draft: messages.saveDraft
-
-* Search contacts: contacts.search
-
-* Search gifs: messages.searchGifs
-
-* Search peers or messages: messages.search
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send an email to recover the 2FA password: auth.requestPasswordRecovery
-
-* Send confirmation phone code: account.sendConfirmPhoneCode
-
-* Send inline bot result obtained with messages.getInlineBotResults to the chat: messages.sendInlineBotResult
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Set account TTL: account.setAccountTTL
-
-* Set privacy settings: account.setPrivacy
-
-* Set the game score of an inline message: messages.setInlineGameScore
-
-* Set the game score: messages.setGameScore
-
-* Set the pinned message of a channel/supergroup: channels.updatePinnedMessage
-
-* Set the update status of webhook: help.setBotUpdatesStatus
-
-* Start a bot: messages.startBot
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Toggle channel signatures: channels.toggleSignatures
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update profile info: account.updateProfile
-
-* Update the username of a supergroup/channel: channels.updateUsername
-
-* Update this user's username: account.updateUsername
-
-* Upload profile photo: photos.uploadProfilePhoto
-
-* Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
-
diff --git a/old_docs/API_docs_v62/methods/account_changePhone.md b/old_docs/API_docs_v62/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/old_docs/API_docs_v62/methods/account_changePhone.md
+++ b/old_docs/API_docs_v62/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v62/methods/account_checkUsername.md b/old_docs/API_docs_v62/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v62/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v62/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v62/methods/account_confirmPhone.md b/old_docs/API_docs_v62/methods/account_confirmPhone.md
index b730c2dc..c114cd20 100644
--- a/old_docs/API_docs_v62/methods/account_confirmPhone.md
+++ b/old_docs/API_docs_v62/methods/account_confirmPhone.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = account.confirmPhone({phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_HASH_INVALID|Code hash invalid|
-|PHONE_CODE_EMPTY|phone_code is missing|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_HASH_INVALID|Code hash invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
diff --git a/old_docs/API_docs_v62/methods/account_getNotifySettings.md b/old_docs/API_docs_v62/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v62/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v62/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v62/methods/account_getPasswordSettings.md b/old_docs/API_docs_v62/methods/account_getPasswordSettings.md
index 8ebb78ee..8f878365 100644
--- a/old_docs/API_docs_v62/methods/account_getPasswordSettings.md
+++ b/old_docs/API_docs_v62/methods/account_getPasswordSettings.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+Get the current 2FA settings
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+### Return type: [account\_PasswordSettings](../types/account_PasswordSettings.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$account_PasswordSettings = $MadelineProto->account->getPasswordSettings(['current_password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+account_PasswordSettings = account.getPasswordSettings({current_password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v62/methods/account_getPrivacy.md b/old_docs/API_docs_v62/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/old_docs/API_docs_v62/methods/account_getPrivacy.md
+++ b/old_docs/API_docs_v62/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v62/methods/account_registerDevice.md b/old_docs/API_docs_v62/methods/account_registerDevice.md
index cf16c2a2..82a6cad9 100644
--- a/old_docs/API_docs_v62/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v62/methods/account_registerDevice.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({token_type=int, token='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v62/methods/account_reportPeer.md b/old_docs/API_docs_v62/methods/account_reportPeer.md
index a203c900..87b080eb 100644
--- a/old_docs/API_docs_v62/methods/account_reportPeer.md
+++ b/old_docs/API_docs_v62/methods/account_reportPeer.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.reportPeer({peer=InputPeer, reason=ReportReason, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v62/methods/account_resetAuthorization.md b/old_docs/API_docs_v62/methods/account_resetAuthorization.md
index c950992c..e8e8ecc4 100644
--- a/old_docs/API_docs_v62/methods/account_resetAuthorization.md
+++ b/old_docs/API_docs_v62/methods/account_resetAuthorization.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.resetAuthorization({hash=long, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v62/methods/account_sendChangePhoneCode.md b/old_docs/API_docs_v62/methods/account_sendChangePhoneCode.md
index d5be60ef..08e5e86e 100644
--- a/old_docs/API_docs_v62/methods/account_sendChangePhoneCode.md
+++ b/old_docs/API_docs_v62/methods/account_sendChangePhoneCode.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendChangePhoneCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v62/methods/account_sendConfirmPhoneCode.md b/old_docs/API_docs_v62/methods/account_sendConfirmPhoneCode.md
index 028a1fdc..9fa7b57e 100644
--- a/old_docs/API_docs_v62/methods/account_sendConfirmPhoneCode.md
+++ b/old_docs/API_docs_v62/methods/account_sendConfirmPhoneCode.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendConfirmPhoneCode({allow_flashcall=Bool, hash='string', current_number=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v62/methods/account_setAccountTTL.md b/old_docs/API_docs_v62/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/old_docs/API_docs_v62/methods/account_setAccountTTL.md
+++ b/old_docs/API_docs_v62/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/old_docs/API_docs_v62/methods/account_setPrivacy.md b/old_docs/API_docs_v62/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/old_docs/API_docs_v62/methods/account_setPrivacy.md
+++ b/old_docs/API_docs_v62/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v62/methods/account_unregisterDevice.md b/old_docs/API_docs_v62/methods/account_unregisterDevice.md
index 589f48b0..a184da43 100644
--- a/old_docs/API_docs_v62/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v62/methods/account_unregisterDevice.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v62/methods/account_updateNotifySettings.md b/old_docs/API_docs_v62/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v62/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v62/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v62/methods/account_updatePasswordSettings.md b/old_docs/API_docs_v62/methods/account_updatePasswordSettings.md
index 80f27228..68e5da6d 100644
--- a/old_docs/API_docs_v62/methods/account_updatePasswordSettings.md
+++ b/old_docs/API_docs_v62/methods/account_updatePasswordSettings.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+|new\_settings|[account\_PasswordInputSettings](../types/account_PasswordInputSettings.md) | New 2FA settings | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->account->updatePasswordSettings(['current_password_hash' => 'bytes', 'new_settings' => account_PasswordInputSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = account.updatePasswordSettings({current_password_hash='bytes', new_settings=account_PasswordInputSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EMAIL_UNCONFIRMED|Email unconfirmed|
+|400|EMAIL_UNCONFIRMED_X|The provided email isn't confirmed, X is the length of the verification code that was just sent to the email.|
+|400|NEW_SALT_INVALID|The new salt is invalid|
+|400|NEW_SETTINGS_INVALID|The new settings are invalid|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v62/methods/account_updateProfile.md b/old_docs/API_docs_v62/methods/account_updateProfile.md
index af5b6a0f..0d74c5e5 100644
--- a/old_docs/API_docs_v62/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v62/methods/account_updateProfile.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v62/methods/account_updateStatus.md b/old_docs/API_docs_v62/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v62/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v62/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v62/methods/account_updateUsername.md b/old_docs/API_docs_v62/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v62/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v62/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v62/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v62/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v62/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v62/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v62/methods/auth_cancelCode.md b/old_docs/API_docs_v62/methods/auth_cancelCode.md
index fcbd7713..a69e0118 100644
--- a/old_docs/API_docs_v62/methods/auth_cancelCode.md
+++ b/old_docs/API_docs_v62/methods/auth_cancelCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = auth.cancelCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v62/methods/auth_checkPassword.md b/old_docs/API_docs_v62/methods/auth_checkPassword.md
index 8d76c483..db65cb56 100644
--- a/old_docs/API_docs_v62/methods/auth_checkPassword.md
+++ b/old_docs/API_docs_v62/methods/auth_checkPassword.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->checkPassword(['password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.checkPassword({password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v62/methods/auth_checkPhone.md b/old_docs/API_docs_v62/methods/auth_checkPhone.md
index f3e32365..e974ce7f 100644
--- a/old_docs/API_docs_v62/methods/auth_checkPhone.md
+++ b/old_docs/API_docs_v62/methods/auth_checkPhone.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
auth_CheckedPhone = auth.checkPhone({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v62/methods/auth_exportAuthorization.md b/old_docs/API_docs_v62/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v62/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v62/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v62/methods/auth_importAuthorization.md b/old_docs/API_docs_v62/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v62/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v62/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v62/methods/auth_importBotAuthorization.md b/old_docs/API_docs_v62/methods/auth_importBotAuthorization.md
index 1a98c1b9..98a2f8ca 100644
--- a/old_docs/API_docs_v62/methods/auth_importBotAuthorization.md
+++ b/old_docs/API_docs_v62/methods/auth_importBotAuthorization.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|api\_id|[int](../types/int.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_hash|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|bot\_auth\_token|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importBotAuthorization(['api_id' => int, 'api_hash' => 'string', 'bot_auth_token' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importBotAuthorization({api_id=int, api_hash='string', bot_auth_token='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ACCESS_TOKEN_EXPIRED|Access token expired|
+|400|ACCESS_TOKEN_INVALID|Access token invalid|
+|400|API_ID_INVALID|API ID invalid|
diff --git a/old_docs/API_docs_v62/methods/auth_logOut.md b/old_docs/API_docs_v62/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v62/methods/auth_logOut.md
+++ b/old_docs/API_docs_v62/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v62/methods/auth_recoverPassword.md b/old_docs/API_docs_v62/methods/auth_recoverPassword.md
index 83ff5aed..d4bad9c5 100644
--- a/old_docs/API_docs_v62/methods/auth_recoverPassword.md
+++ b/old_docs/API_docs_v62/methods/auth_recoverPassword.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
auth_Authorization = auth.recoverPassword({code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_EMPTY|The provided code is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_EMPTY|The provided code is empty|
diff --git a/old_docs/API_docs_v62/methods/auth_requestPasswordRecovery.md b/old_docs/API_docs_v62/methods/auth_requestPasswordRecovery.md
index 1864bbb0..b6ad57ba 100644
--- a/old_docs/API_docs_v62/methods/auth_requestPasswordRecovery.md
+++ b/old_docs/API_docs_v62/methods/auth_requestPasswordRecovery.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
auth_PasswordRecovery = auth.requestPasswordRecovery({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_EMPTY|The provided password is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_EMPTY|The provided password is empty|
diff --git a/old_docs/API_docs_v62/methods/auth_resendCode.md b/old_docs/API_docs_v62/methods/auth_resendCode.md
index ff7868ea..ec730d75 100644
--- a/old_docs/API_docs_v62/methods/auth_resendCode.md
+++ b/old_docs/API_docs_v62/methods/auth_resendCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = auth.resendCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v62/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v62/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v62/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v62/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v62/methods/auth_sendCode.md b/old_docs/API_docs_v62/methods/auth_sendCode.md
index 9afebb55..1e9d1a4e 100644
--- a/old_docs/API_docs_v62/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v62/methods/auth_sendCode.md
@@ -7,8 +7,59 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|allow\_flashcall|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|current\_number|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['allow_flashcall' => Bool, 'phone_number' => 'string', 'current_number' => Bool, 'api_id' => int, 'api_hash' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, api_id=int, api_hash='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v62/methods/auth_sendInvites.md b/old_docs/API_docs_v62/methods/auth_sendInvites.md
index e10c1109..4c11023e 100644
--- a/old_docs/API_docs_v62/methods/auth_sendInvites.md
+++ b/old_docs/API_docs_v62/methods/auth_sendInvites.md
@@ -49,10 +49,10 @@ Bool = auth.sendInvites({phone_numbers={'string'}, message='string', })
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_EMPTY|The provided message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_EMPTY|The provided message is empty|
diff --git a/old_docs/API_docs_v62/methods/auth_signIn.md b/old_docs/API_docs_v62/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v62/methods/auth_signIn.md
+++ b/old_docs/API_docs_v62/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v62/methods/auth_signUp.md b/old_docs/API_docs_v62/methods/auth_signUp.md
index 15960145..31154486 100644
--- a/old_docs/API_docs_v62/methods/auth_signUp.md
+++ b/old_docs/API_docs_v62/methods/auth_signUp.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', phone_code='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v62/methods/channels_checkUsername.md b/old_docs/API_docs_v62/methods/channels_checkUsername.md
index 483a2f6f..52365d34 100644
--- a/old_docs/API_docs_v62/methods/channels_checkUsername.md
+++ b/old_docs/API_docs_v62/methods/channels_checkUsername.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Bool = channels.checkUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v62/methods/channels_createChannel.md b/old_docs/API_docs_v62/methods/channels_createChannel.md
index b924e6a6..ecaee0ef 100644
--- a/old_docs/API_docs_v62/methods/channels_createChannel.md
+++ b/old_docs/API_docs_v62/methods/channels_createChannel.md
@@ -45,12 +45,12 @@ Or, if you're into Lua:
Updates = channels.createChannel({broadcast=Bool, megagroup=Bool, title='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_TITLE_EMPTY|No chat title provided|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
+|406|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v62/methods/channels_deleteChannel.md b/old_docs/API_docs_v62/methods/channels_deleteChannel.md
index 53a9c23d..1b8d2d48 100644
--- a/old_docs/API_docs_v62/methods/channels_deleteChannel.md
+++ b/old_docs/API_docs_v62/methods/channels_deleteChannel.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Updates = channels.deleteChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v62/methods/channels_deleteMessages.md b/old_docs/API_docs_v62/methods/channels_deleteMessages.md
index f76a9ad1..463ebad0 100644
--- a/old_docs/API_docs_v62/methods/channels_deleteMessages.md
+++ b/old_docs/API_docs_v62/methods/channels_deleteMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_AffectedMessages = channels.deleteMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v62/methods/channels_deleteUserHistory.md b/old_docs/API_docs_v62/methods/channels_deleteUserHistory.md
index 0a4e7d82..33905a7e 100644
--- a/old_docs/API_docs_v62/methods/channels_deleteUserHistory.md
+++ b/old_docs/API_docs_v62/methods/channels_deleteUserHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedHistory = channels.deleteUserHistory({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v62/methods/channels_editAbout.md b/old_docs/API_docs_v62/methods/channels_editAbout.md
index 47111668..d5e090e0 100644
--- a/old_docs/API_docs_v62/methods/channels_editAbout.md
+++ b/old_docs/API_docs_v62/methods/channels_editAbout.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Bool = channels.editAbout({channel=InputChannel, about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
-|CHAT_ABOUT_TOO_LONG|Chat about too long|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
+|400|CHAT_ABOUT_TOO_LONG|Chat about too long|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v62/methods/channels_editAdmin.md b/old_docs/API_docs_v62/methods/channels_editAdmin.md
index 3fbaf64d..229318fb 100644
--- a/old_docs/API_docs_v62/methods/channels_editAdmin.md
+++ b/old_docs/API_docs_v62/methods/channels_editAdmin.md
@@ -44,19 +44,19 @@ Or, if you're into Lua:
Updates = channels.editAdmin({channel=InputChannel, user_id=InputUser, role=ChannelParticipantRole, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ADMINS_TOO_MUCH|There are too many admins|
-|BOT_CHANNELS_NA|Bots can't edit admin privileges|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
-|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ADMINS_TOO_MUCH|There are too many admins|
+|400|BOT_CHANNELS_NA|Bots can't edit admin privileges|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
+|403|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v62/methods/channels_editPhoto.md b/old_docs/API_docs_v62/methods/channels_editPhoto.md
index bec0ba48..caef32d5 100644
--- a/old_docs/API_docs_v62/methods/channels_editPhoto.md
+++ b/old_docs/API_docs_v62/methods/channels_editPhoto.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editPhoto({channel=InputChannel, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|PHOTO_INVALID|Photo invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|PHOTO_INVALID|Photo invalid|
diff --git a/old_docs/API_docs_v62/methods/channels_editTitle.md b/old_docs/API_docs_v62/methods/channels_editTitle.md
index b5efeb39..d7cb33da 100644
--- a/old_docs/API_docs_v62/methods/channels_editTitle.md
+++ b/old_docs/API_docs_v62/methods/channels_editTitle.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editTitle({channel=InputChannel, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v62/methods/channels_exportInvite.md b/old_docs/API_docs_v62/methods/channels_exportInvite.md
index 0918b3e7..9d578deb 100644
--- a/old_docs/API_docs_v62/methods/channels_exportInvite.md
+++ b/old_docs/API_docs_v62/methods/channels_exportInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ExportedChatInvite = channels.exportInvite({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INVITE_HASH_EXPIRED|The invite link has expired|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
diff --git a/old_docs/API_docs_v62/methods/channels_exportMessageLink.md b/old_docs/API_docs_v62/methods/channels_exportMessageLink.md
index 66cd7584..2e92ee5e 100644
--- a/old_docs/API_docs_v62/methods/channels_exportMessageLink.md
+++ b/old_docs/API_docs_v62/methods/channels_exportMessageLink.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
ExportedMessageLink = channels.exportMessageLink({channel=InputChannel, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v62/methods/channels_getChannels.md b/old_docs/API_docs_v62/methods/channels_getChannels.md
index 78d50641..95d7a188 100644
--- a/old_docs/API_docs_v62/methods/channels_getChannels.md
+++ b/old_docs/API_docs_v62/methods/channels_getChannels.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = channels.getChannels({id={InputChannel}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v62/methods/channels_getFullChannel.md b/old_docs/API_docs_v62/methods/channels_getFullChannel.md
index 45a8ec72..ebd53de4 100644
--- a/old_docs/API_docs_v62/methods/channels_getFullChannel.md
+++ b/old_docs/API_docs_v62/methods/channels_getFullChannel.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->channels->getFullChannel(['channel' => InputChannel, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = channels.getFullChannel({channel=InputChannel, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v62/methods/channels_getMessages.md b/old_docs/API_docs_v62/methods/channels_getMessages.md
index aa85d640..57bcc60f 100644
--- a/old_docs/API_docs_v62/methods/channels_getMessages.md
+++ b/old_docs/API_docs_v62/methods/channels_getMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_Messages = channels.getMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
diff --git a/old_docs/API_docs_v62/methods/channels_getParticipant.md b/old_docs/API_docs_v62/methods/channels_getParticipant.md
index 6633114f..808156fd 100644
--- a/old_docs/API_docs_v62/methods/channels_getParticipant.md
+++ b/old_docs/API_docs_v62/methods/channels_getParticipant.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
channels_ChannelParticipant = channels.getParticipant({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v62/methods/channels_getParticipants.md b/old_docs/API_docs_v62/methods/channels_getParticipants.md
index d4bd8779..21d4a418 100644
--- a/old_docs/API_docs_v62/methods/channels_getParticipants.md
+++ b/old_docs/API_docs_v62/methods/channels_getParticipants.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, filter=ChannelParticipantsFilter, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v62/methods/channels_inviteToChannel.md b/old_docs/API_docs_v62/methods/channels_inviteToChannel.md
index f7093f13..d8c5e88a 100644
--- a/old_docs/API_docs_v62/methods/channels_inviteToChannel.md
+++ b/old_docs/API_docs_v62/methods/channels_inviteToChannel.md
@@ -43,25 +43,25 @@ Or, if you're into Lua:
Updates = channels.inviteToChannel({channel=InputChannel, users={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
-|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_BLOCKED|User blocked|
-|USER_BOT|Bots can only be admins in channels.|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_KICKED|This user was kicked from this supergroup/channel|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
+|400|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_BLOCKED|User blocked|
+|400|USER_BOT|Bots can only be admins in channels.|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_KICKED|This user was kicked from this supergroup/channel|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v62/methods/channels_joinChannel.md b/old_docs/API_docs_v62/methods/channels_joinChannel.md
index b056031a..a4a7c177 100644
--- a/old_docs/API_docs_v62/methods/channels_joinChannel.md
+++ b/old_docs/API_docs_v62/methods/channels_joinChannel.md
@@ -42,15 +42,15 @@ Or, if you're into Lua:
Updates = channels.joinChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
diff --git a/old_docs/API_docs_v62/methods/channels_leaveChannel.md b/old_docs/API_docs_v62/methods/channels_leaveChannel.md
index fdea13ba..6538d443 100644
--- a/old_docs/API_docs_v62/methods/channels_leaveChannel.md
+++ b/old_docs/API_docs_v62/methods/channels_leaveChannel.md
@@ -42,14 +42,14 @@ Or, if you're into Lua:
Updates = channels.leaveChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
-|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
diff --git a/old_docs/API_docs_v62/methods/channels_readHistory.md b/old_docs/API_docs_v62/methods/channels_readHistory.md
index 93dc075f..3532dae0 100644
--- a/old_docs/API_docs_v62/methods/channels_readHistory.md
+++ b/old_docs/API_docs_v62/methods/channels_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readHistory({channel=InputChannel, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v62/methods/channels_reportSpam.md b/old_docs/API_docs_v62/methods/channels_reportSpam.md
index db80676a..7e273cc5 100644
--- a/old_docs/API_docs_v62/methods/channels_reportSpam.md
+++ b/old_docs/API_docs_v62/methods/channels_reportSpam.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
Bool = channels.reportSpam({channel=InputChannel, user_id=InputUser, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
diff --git a/old_docs/API_docs_v62/methods/channels_toggleInvites.md b/old_docs/API_docs_v62/methods/channels_toggleInvites.md
index e5d3fba1..6266d30b 100644
--- a/old_docs/API_docs_v62/methods/channels_toggleInvites.md
+++ b/old_docs/API_docs_v62/methods/channels_toggleInvites.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.toggleInvites({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v62/methods/channels_toggleSignatures.md b/old_docs/API_docs_v62/methods/channels_toggleSignatures.md
index cdfc0fda..f8624946 100644
--- a/old_docs/API_docs_v62/methods/channels_toggleSignatures.md
+++ b/old_docs/API_docs_v62/methods/channels_toggleSignatures.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = channels.toggleSignatures({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v62/methods/channels_updatePinnedMessage.md b/old_docs/API_docs_v62/methods/channels_updatePinnedMessage.md
index 53733a22..37d7c3c0 100644
--- a/old_docs/API_docs_v62/methods/channels_updatePinnedMessage.md
+++ b/old_docs/API_docs_v62/methods/channels_updatePinnedMessage.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = channels.updatePinnedMessage({silent=Bool, channel=InputChannel, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v62/methods/channels_updateUsername.md b/old_docs/API_docs_v62/methods/channels_updateUsername.md
index 677712f9..48d250e6 100644
--- a/old_docs/API_docs_v62/methods/channels_updateUsername.md
+++ b/old_docs/API_docs_v62/methods/channels_updateUsername.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Bool = channels.updateUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_OCCUPIED|The provided username is already occupied|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
diff --git a/old_docs/API_docs_v62/methods/contacts_block.md b/old_docs/API_docs_v62/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v62/methods/contacts_block.md
+++ b/old_docs/API_docs_v62/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v62/methods/contacts_deleteContact.md b/old_docs/API_docs_v62/methods/contacts_deleteContact.md
index ba9569e4..a9321d64 100644
--- a/old_docs/API_docs_v62/methods/contacts_deleteContact.md
+++ b/old_docs/API_docs_v62/methods/contacts_deleteContact.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
contacts_Link = contacts.deleteContact({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v62/methods/contacts_deleteContacts.md b/old_docs/API_docs_v62/methods/contacts_deleteContacts.md
index bfc91fdd..3c8e90f0 100644
--- a/old_docs/API_docs_v62/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v62/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v62/methods/contacts_getStatuses.md b/old_docs/API_docs_v62/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v62/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v62/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v62/methods/contacts_getTopPeers.md b/old_docs/API_docs_v62/methods/contacts_getTopPeers.md
index 0552f184..1aba4f85 100644
--- a/old_docs/API_docs_v62/methods/contacts_getTopPeers.md
+++ b/old_docs/API_docs_v62/methods/contacts_getTopPeers.md
@@ -49,10 +49,10 @@ Or, if you're into Lua:
contacts_TopPeers = contacts.getTopPeers({correspondents=Bool, bots_pm=Bool, bots_inline=Bool, groups=Bool, channels=Bool, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TYPES_EMPTY|No top peer type was provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TYPES_EMPTY|No top peer type was provided|
diff --git a/old_docs/API_docs_v62/methods/contacts_importCard.md b/old_docs/API_docs_v62/methods/contacts_importCard.md
index 15addde1..ed3d17fe 100644
--- a/old_docs/API_docs_v62/methods/contacts_importCard.md
+++ b/old_docs/API_docs_v62/methods/contacts_importCard.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
User = contacts.importCard({export_card={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|EXPORT_CARD_INVALID|Provided card is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EXPORT_CARD_INVALID|Provided card is invalid|
diff --git a/old_docs/API_docs_v62/methods/contacts_resetTopPeerRating.md b/old_docs/API_docs_v62/methods/contacts_resetTopPeerRating.md
index 43cf1685..787be177 100644
--- a/old_docs/API_docs_v62/methods/contacts_resetTopPeerRating.md
+++ b/old_docs/API_docs_v62/methods/contacts_resetTopPeerRating.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = contacts.resetTopPeerRating({category=TopPeerCategory, peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v62/methods/contacts_resolveUsername.md b/old_docs/API_docs_v62/methods/contacts_resolveUsername.md
index fab56bb1..68f709db 100644
--- a/old_docs/API_docs_v62/methods/contacts_resolveUsername.md
+++ b/old_docs/API_docs_v62/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [contacts\_ResolvedPeer](../types/contacts_ResolvedPeer.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$contacts_ResolvedPeer = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+contacts_ResolvedPeer = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v62/methods/contacts_search.md b/old_docs/API_docs_v62/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v62/methods/contacts_search.md
+++ b/old_docs/API_docs_v62/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v62/methods/contacts_unblock.md b/old_docs/API_docs_v62/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v62/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v62/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v62/methods/help_getConfig.md b/old_docs/API_docs_v62/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v62/methods/help_getConfig.md
+++ b/old_docs/API_docs_v62/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v62/methods/initConnection.md b/old_docs/API_docs_v62/methods/initConnection.md
index 659f4e6b..a41f0c4d 100644
--- a/old_docs/API_docs_v62/methods/initConnection.md
+++ b/old_docs/API_docs_v62/methods/initConnection.md
@@ -47,11 +47,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', lang_code='string', query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v62/methods/invokeWithLayer.md b/old_docs/API_docs_v62/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/old_docs/API_docs_v62/methods/invokeWithLayer.md
+++ b/old_docs/API_docs_v62/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v62/methods/messages_acceptEncryption.md b/old_docs/API_docs_v62/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v62/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v62/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v62/methods/messages_addChatUser.md b/old_docs/API_docs_v62/methods/messages_addChatUser.md
index bc0d6253..b5e164b2 100644
--- a/old_docs/API_docs_v62/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v62/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
Updates = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v62/methods/messages_checkChatInvite.md b/old_docs/API_docs_v62/methods/messages_checkChatInvite.md
index de28b09b..0d13d55e 100644
--- a/old_docs/API_docs_v62/methods/messages_checkChatInvite.md
+++ b/old_docs/API_docs_v62/methods/messages_checkChatInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ChatInvite = messages.checkChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
diff --git a/old_docs/API_docs_v62/methods/messages_createChat.md b/old_docs/API_docs_v62/methods/messages_createChat.md
index 8f6e9672..b2623f1d 100644
--- a/old_docs/API_docs_v62/methods/messages_createChat.md
+++ b/old_docs/API_docs_v62/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v62/methods/messages_deleteChatUser.md b/old_docs/API_docs_v62/methods/messages_deleteChatUser.md
index 63529571..11b9b220 100644
--- a/old_docs/API_docs_v62/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v62/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v62/methods/messages_deleteHistory.md b/old_docs/API_docs_v62/methods/messages_deleteHistory.md
index 2ade177e..338c2cdf 100644
--- a/old_docs/API_docs_v62/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v62/methods/messages_deleteHistory.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({just_clear=Bool, peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v62/methods/messages_deleteMessages.md b/old_docs/API_docs_v62/methods/messages_deleteMessages.md
index 4c65080a..41517dd0 100644
--- a/old_docs/API_docs_v62/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v62/methods/messages_deleteMessages.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.deleteMessages({revoke=Bool, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v62/methods/messages_discardEncryption.md b/old_docs/API_docs_v62/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v62/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v62/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v62/methods/messages_editChatAdmin.md b/old_docs/API_docs_v62/methods/messages_editChatAdmin.md
index 2b4dc94c..6f6c1376 100644
--- a/old_docs/API_docs_v62/methods/messages_editChatAdmin.md
+++ b/old_docs/API_docs_v62/methods/messages_editChatAdmin.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.editChatAdmin({chat_id=InputPeer, user_id=InputUser, is_admin=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v62/methods/messages_editChatPhoto.md b/old_docs/API_docs_v62/methods/messages_editChatPhoto.md
index 2a82c232..a21a03b9 100644
--- a/old_docs/API_docs_v62/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v62/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Updates = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v62/methods/messages_editChatTitle.md b/old_docs/API_docs_v62/methods/messages_editChatTitle.md
index 2c338ad6..72f78741 100644
--- a/old_docs/API_docs_v62/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v62/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v62/methods/messages_editInlineBotMessage.md b/old_docs/API_docs_v62/methods/messages_editInlineBotMessage.md
index f22642f2..c274cbb9 100644
--- a/old_docs/API_docs_v62/methods/messages_editInlineBotMessage.md
+++ b/old_docs/API_docs_v62/methods/messages_editInlineBotMessage.md
@@ -95,11 +95,11 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
diff --git a/old_docs/API_docs_v62/methods/messages_editMessage.md b/old_docs/API_docs_v62/methods/messages_editMessage.md
index 05fee4b3..d3ce5261 100644
--- a/old_docs/API_docs_v62/methods/messages_editMessage.md
+++ b/old_docs/API_docs_v62/methods/messages_editMessage.md
@@ -96,20 +96,20 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v62/methods/messages_exportChatInvite.md b/old_docs/API_docs_v62/methods/messages_exportChatInvite.md
index f3449e79..bc6272e4 100644
--- a/old_docs/API_docs_v62/methods/messages_exportChatInvite.md
+++ b/old_docs/API_docs_v62/methods/messages_exportChatInvite.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
ExportedChatInvite = messages.exportChatInvite({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v62/methods/messages_forwardMessage.md b/old_docs/API_docs_v62/methods/messages_forwardMessage.md
index c8e0b18d..95f6d2f3 100644
--- a/old_docs/API_docs_v62/methods/messages_forwardMessage.md
+++ b/old_docs/API_docs_v62/methods/messages_forwardMessage.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Updates = messages.forwardMessage({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|YOU_BLOCKED_USER|You blocked this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|YOU_BLOCKED_USER|You blocked this user|
diff --git a/old_docs/API_docs_v62/methods/messages_forwardMessages.md b/old_docs/API_docs_v62/methods/messages_forwardMessages.md
index db772b23..2d751dcb 100644
--- a/old_docs/API_docs_v62/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v62/methods/messages_forwardMessages.md
@@ -47,29 +47,29 @@ Or, if you're into Lua:
Updates = messages.forwardMessages({silent=Bool, background=Bool, with_my_score=Bool, from_peer=InputPeer, id={int}, to_peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v62/methods/messages_getBotCallbackAnswer.md b/old_docs/API_docs_v62/methods/messages_getBotCallbackAnswer.md
index f97fa5b0..3f8cc23b 100644
--- a/old_docs/API_docs_v62/methods/messages_getBotCallbackAnswer.md
+++ b/old_docs/API_docs_v62/methods/messages_getBotCallbackAnswer.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
messages_BotCallbackAnswer = messages.getBotCallbackAnswer({game=Bool, peer=InputPeer, msg_id=int, data='bytes', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v62/methods/messages_getChats.md b/old_docs/API_docs_v62/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/old_docs/API_docs_v62/methods/messages_getChats.md
+++ b/old_docs/API_docs_v62/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v62/methods/messages_getCommonChats.md b/old_docs/API_docs_v62/methods/messages_getCommonChats.md
index 9470a0ee..cff23c3f 100644
--- a/old_docs/API_docs_v62/methods/messages_getCommonChats.md
+++ b/old_docs/API_docs_v62/methods/messages_getCommonChats.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_Chats = messages.getCommonChats({user_id=InputUser, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v62/methods/messages_getDhConfig.md b/old_docs/API_docs_v62/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v62/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v62/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v62/methods/messages_getDialogs.md b/old_docs/API_docs_v62/methods/messages_getDialogs.md
index 28590399..e95ea75b 100644
--- a/old_docs/API_docs_v62/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v62/methods/messages_getDialogs.md
@@ -46,13 +46,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({exclude_pinned=Bool, offset_date=int, offset_id=int, offset_peer=InputPeer, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v62/methods/messages_getDocumentByHash.md b/old_docs/API_docs_v62/methods/messages_getDocumentByHash.md
index 73a235d5..06469c52 100644
--- a/old_docs/API_docs_v62/methods/messages_getDocumentByHash.md
+++ b/old_docs/API_docs_v62/methods/messages_getDocumentByHash.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Document = messages.getDocumentByHash({sha256='bytes', size=int, mime_type='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
diff --git a/old_docs/API_docs_v62/methods/messages_getFullChat.md b/old_docs/API_docs_v62/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v62/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v62/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v62/methods/messages_getGameHighScores.md b/old_docs/API_docs_v62/methods/messages_getGameHighScores.md
index 249e1d09..5c484bbb 100644
--- a/old_docs/API_docs_v62/methods/messages_getGameHighScores.md
+++ b/old_docs/API_docs_v62/methods/messages_getGameHighScores.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
messages_HighScores = messages.getGameHighScores({peer=InputPeer, id=int, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v62/methods/messages_getHistory.md b/old_docs/API_docs_v62/methods/messages_getHistory.md
index ced9753f..68f746ba 100644
--- a/old_docs/API_docs_v62/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v62/methods/messages_getHistory.md
@@ -48,16 +48,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset_id=int, offset_date=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v62/methods/messages_getInlineBotResults.md b/old_docs/API_docs_v62/methods/messages_getInlineBotResults.md
index 1efcb412..17d678b7 100644
--- a/old_docs/API_docs_v62/methods/messages_getInlineBotResults.md
+++ b/old_docs/API_docs_v62/methods/messages_getInlineBotResults.md
@@ -46,13 +46,13 @@ Or, if you're into Lua:
messages_BotResults = messages.getInlineBotResults({bot=InputUser, peer=InputPeer, geo_point=InputGeoPoint, query='string', offset='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
-|BOT_INVALID|This is not a valid bot|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
+|400|BOT_INVALID|This is not a valid bot|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v62/methods/messages_getInlineGameHighScores.md b/old_docs/API_docs_v62/methods/messages_getInlineGameHighScores.md
index e68c6db8..ac33b6b8 100644
--- a/old_docs/API_docs_v62/methods/messages_getInlineGameHighScores.md
+++ b/old_docs/API_docs_v62/methods/messages_getInlineGameHighScores.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_HighScores = messages.getInlineGameHighScores({id=InputBotInlineMessageID, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v62/methods/messages_getMessageEditData.md b/old_docs/API_docs_v62/methods/messages_getMessageEditData.md
index 7f1b7164..b907d78c 100644
--- a/old_docs/API_docs_v62/methods/messages_getMessageEditData.md
+++ b/old_docs/API_docs_v62/methods/messages_getMessageEditData.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_MessageEditData = messages.getMessageEditData({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v62/methods/messages_getMessagesViews.md b/old_docs/API_docs_v62/methods/messages_getMessagesViews.md
index 3d490315..143e568c 100644
--- a/old_docs/API_docs_v62/methods/messages_getMessagesViews.md
+++ b/old_docs/API_docs_v62/methods/messages_getMessagesViews.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
Vector_of_int = messages.getMessagesViews({peer=InputPeer, id={int}, increment=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v62/methods/messages_getPeerDialogs.md b/old_docs/API_docs_v62/methods/messages_getPeerDialogs.md
index 6811001a..0c770183 100644
--- a/old_docs/API_docs_v62/methods/messages_getPeerDialogs.md
+++ b/old_docs/API_docs_v62/methods/messages_getPeerDialogs.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPeerDialogs({peers={InputPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v62/methods/messages_getPeerSettings.md b/old_docs/API_docs_v62/methods/messages_getPeerSettings.md
index 26dafb9b..69032ff5 100644
--- a/old_docs/API_docs_v62/methods/messages_getPeerSettings.md
+++ b/old_docs/API_docs_v62/methods/messages_getPeerSettings.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
PeerSettings = messages.getPeerSettings({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v62/methods/messages_getPinnedDialogs.md b/old_docs/API_docs_v62/methods/messages_getPinnedDialogs.md
index 828d622e..f106098d 100644
--- a/old_docs/API_docs_v62/methods/messages_getPinnedDialogs.md
+++ b/old_docs/API_docs_v62/methods/messages_getPinnedDialogs.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPinnedDialogs({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FOLDER_ID_INVALID|Invalid folder ID|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FOLDER_ID_INVALID|Invalid folder ID|
diff --git a/old_docs/API_docs_v62/methods/messages_getStickerSet.md b/old_docs/API_docs_v62/methods/messages_getStickerSet.md
index 57bce84d..487316cc 100644
--- a/old_docs/API_docs_v62/methods/messages_getStickerSet.md
+++ b/old_docs/API_docs_v62/methods/messages_getStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_StickerSet = messages.getStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v62/methods/messages_getWebPage.md b/old_docs/API_docs_v62/methods/messages_getWebPage.md
index ce51ff41..63ef5e93 100644
--- a/old_docs/API_docs_v62/methods/messages_getWebPage.md
+++ b/old_docs/API_docs_v62/methods/messages_getWebPage.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
WebPage = messages.getWebPage({url='string', hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|WC_CONVERT_URL_INVALID|WC convert URL invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|WC_CONVERT_URL_INVALID|WC convert URL invalid|
diff --git a/old_docs/API_docs_v62/methods/messages_hideReportSpam.md b/old_docs/API_docs_v62/methods/messages_hideReportSpam.md
index c4bf7399..57756d2e 100644
--- a/old_docs/API_docs_v62/methods/messages_hideReportSpam.md
+++ b/old_docs/API_docs_v62/methods/messages_hideReportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.hideReportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v62/methods/messages_importChatInvite.md b/old_docs/API_docs_v62/methods/messages_importChatInvite.md
index 12120867..101b4b19 100644
--- a/old_docs/API_docs_v62/methods/messages_importChatInvite.md
+++ b/old_docs/API_docs_v62/methods/messages_importChatInvite.md
@@ -42,16 +42,16 @@ Or, if you're into Lua:
Updates = messages.importChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v62/methods/messages_installStickerSet.md b/old_docs/API_docs_v62/methods/messages_installStickerSet.md
index 21a57a85..67f2aca0 100644
--- a/old_docs/API_docs_v62/methods/messages_installStickerSet.md
+++ b/old_docs/API_docs_v62/methods/messages_installStickerSet.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_StickerSetInstallResult = messages.installStickerSet({stickerset=InputStickerSet, archived=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v62/methods/messages_migrateChat.md b/old_docs/API_docs_v62/methods/messages_migrateChat.md
index a72f4c11..ee4010eb 100644
--- a/old_docs/API_docs_v62/methods/messages_migrateChat.md
+++ b/old_docs/API_docs_v62/methods/messages_migrateChat.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
Updates = messages.migrateChat({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v62/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v62/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v62/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v62/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v62/methods/messages_readHistory.md b/old_docs/API_docs_v62/methods/messages_readHistory.md
index 2ad5cd09..a7f0eca7 100644
--- a/old_docs/API_docs_v62/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v62/methods/messages_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.readHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v62/methods/messages_receivedQueue.md b/old_docs/API_docs_v62/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v62/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v62/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v62/methods/messages_reorderPinnedDialogs.md b/old_docs/API_docs_v62/methods/messages_reorderPinnedDialogs.md
index d6759a55..d89bf27a 100644
--- a/old_docs/API_docs_v62/methods/messages_reorderPinnedDialogs.md
+++ b/old_docs/API_docs_v62/methods/messages_reorderPinnedDialogs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.reorderPinnedDialogs({force=Bool, order={InputPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v62/methods/messages_reportEncryptedSpam.md b/old_docs/API_docs_v62/methods/messages_reportEncryptedSpam.md
index 9b1e868b..aeac27ef 100644
--- a/old_docs/API_docs_v62/methods/messages_reportEncryptedSpam.md
+++ b/old_docs/API_docs_v62/methods/messages_reportEncryptedSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportEncryptedSpam({peer=InputEncryptedChat, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v62/methods/messages_reportSpam.md b/old_docs/API_docs_v62/methods/messages_reportSpam.md
index e92fba13..dc256e55 100644
--- a/old_docs/API_docs_v62/methods/messages_reportSpam.md
+++ b/old_docs/API_docs_v62/methods/messages_reportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v62/methods/messages_requestEncryption.md b/old_docs/API_docs_v62/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v62/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v62/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v62/methods/messages_saveDraft.md b/old_docs/API_docs_v62/methods/messages_saveDraft.md
index 791ce234..ea6d407e 100644
--- a/old_docs/API_docs_v62/methods/messages_saveDraft.md
+++ b/old_docs/API_docs_v62/methods/messages_saveDraft.md
@@ -89,10 +89,10 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v62/methods/messages_saveGif.md b/old_docs/API_docs_v62/methods/messages_saveGif.md
index f504ff9e..010e17ec 100644
--- a/old_docs/API_docs_v62/methods/messages_saveGif.md
+++ b/old_docs/API_docs_v62/methods/messages_saveGif.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.saveGif({id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|GIF_ID_INVALID|The provided GIF ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|GIF_ID_INVALID|The provided GIF ID is invalid|
diff --git a/old_docs/API_docs_v62/methods/messages_saveRecentSticker.md b/old_docs/API_docs_v62/methods/messages_saveRecentSticker.md
index 98c74efd..072b6fe9 100644
--- a/old_docs/API_docs_v62/methods/messages_saveRecentSticker.md
+++ b/old_docs/API_docs_v62/methods/messages_saveRecentSticker.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.saveRecentSticker({attached=Bool, id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v62/methods/messages_search.md b/old_docs/API_docs_v62/methods/messages_search.md
index 5f5480cc..dc1b6934 100644
--- a/old_docs/API_docs_v62/methods/messages_search.md
+++ b/old_docs/API_docs_v62/methods/messages_search.md
@@ -49,16 +49,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({peer=InputPeer, q='string', filter=MessagesFilter, min_date=int, max_date=int, offset=int, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v62/methods/messages_searchGifs.md b/old_docs/API_docs_v62/methods/messages_searchGifs.md
index 7be4173b..1602d35e 100644
--- a/old_docs/API_docs_v62/methods/messages_searchGifs.md
+++ b/old_docs/API_docs_v62/methods/messages_searchGifs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_FoundGifs = messages.searchGifs({q='string', offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v62/methods/messages_searchGlobal.md b/old_docs/API_docs_v62/methods/messages_searchGlobal.md
index fb38398b..c8da163c 100644
--- a/old_docs/API_docs_v62/methods/messages_searchGlobal.md
+++ b/old_docs/API_docs_v62/methods/messages_searchGlobal.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
messages_Messages = messages.searchGlobal({q='string', offset_date=int, offset_peer=InputPeer, offset_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v62/methods/messages_sendEncrypted.md b/old_docs/API_docs_v62/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v62/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v62/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v62/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v62/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v62/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v62/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v62/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v62/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v62/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v62/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v62/methods/messages_sendInlineBotResult.md b/old_docs/API_docs_v62/methods/messages_sendInlineBotResult.md
index 9ffa02ae..a2b57f4d 100644
--- a/old_docs/API_docs_v62/methods/messages_sendInlineBotResult.md
+++ b/old_docs/API_docs_v62/methods/messages_sendInlineBotResult.md
@@ -48,15 +48,15 @@ Or, if you're into Lua:
Updates = messages.sendInlineBotResult({silent=Bool, background=Bool, clear_draft=Bool, peer=InputPeer, reply_to_msg_id=int, query_id=long, id='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INLINE_RESULT_EXPIRED|The inline query expired|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|QUERY_ID_EMPTY|The query ID is empty|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INLINE_RESULT_EXPIRED|The inline query expired|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|QUERY_ID_EMPTY|The query ID is empty|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v62/methods/messages_sendMedia.md b/old_docs/API_docs_v62/methods/messages_sendMedia.md
index 89dc5572..9bfd0743 100644
--- a/old_docs/API_docs_v62/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v62/methods/messages_sendMedia.md
@@ -54,31 +54,31 @@ Updates = messages.sendMedia({silent=Bool, background=Bool, clear_draft=Bool, pe
You can provide bot API reply_markup objects here.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v62/methods/messages_sendMessage.md b/old_docs/API_docs_v62/methods/messages_sendMessage.md
index 5641ebc3..e0ab305d 100644
--- a/old_docs/API_docs_v62/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v62/methods/messages_sendMessage.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v62/methods/messages_setBotCallbackAnswer.md b/old_docs/API_docs_v62/methods/messages_setBotCallbackAnswer.md
index ed058b4f..630ca61c 100644
--- a/old_docs/API_docs_v62/methods/messages_setBotCallbackAnswer.md
+++ b/old_docs/API_docs_v62/methods/messages_setBotCallbackAnswer.md
@@ -52,11 +52,11 @@ Bool = messages.setBotCallbackAnswer({alert=Bool, query_id=long, message='string
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|URL_INVALID|Invalid URL provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|URL_INVALID|Invalid URL provided|
diff --git a/old_docs/API_docs_v62/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v62/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v62/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v62/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v62/methods/messages_setGameScore.md b/old_docs/API_docs_v62/methods/messages_setGameScore.md
index 548ee889..429b04c6 100644
--- a/old_docs/API_docs_v62/methods/messages_setGameScore.md
+++ b/old_docs/API_docs_v62/methods/messages_setGameScore.md
@@ -47,12 +47,12 @@ Or, if you're into Lua:
Updates = messages.setGameScore({edit_message=Bool, force=Bool, peer=InputPeer, id=int, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v62/methods/messages_setInlineBotResults.md b/old_docs/API_docs_v62/methods/messages_setInlineBotResults.md
index ab388e39..df4c30d4 100644
--- a/old_docs/API_docs_v62/methods/messages_setInlineBotResults.md
+++ b/old_docs/API_docs_v62/methods/messages_setInlineBotResults.md
@@ -48,23 +48,23 @@ Or, if you're into Lua:
Bool = messages.setInlineBotResults({gallery=Bool, private=Bool, query_id=long, results={InputBotInlineResult}, cache_time=int, next_offset='string', switch_pm=InlineBotSwitchPM, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ARTICLE_TITLE_EMPTY|The title of the article is empty|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|PHOTO_INVALID|Photo invalid|
-|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
-|QUERY_ID_INVALID|The query ID is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|RESULT_TYPE_INVALID|Result type invalid|
-|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
-|START_PARAM_INVALID|Start parameter invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ARTICLE_TITLE_EMPTY|The title of the article is empty|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|PHOTO_INVALID|Photo invalid|
+|400|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|RESULT_TYPE_INVALID|Result type invalid|
+|400|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
+|400|START_PARAM_INVALID|Start parameter invalid|
+|403|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v62/methods/messages_setInlineGameScore.md b/old_docs/API_docs_v62/methods/messages_setInlineGameScore.md
index 5eeb1540..62b163d5 100644
--- a/old_docs/API_docs_v62/methods/messages_setInlineGameScore.md
+++ b/old_docs/API_docs_v62/methods/messages_setInlineGameScore.md
@@ -46,11 +46,11 @@ Or, if you're into Lua:
Bool = messages.setInlineGameScore({edit_message=Bool, force=Bool, id=InputBotInlineMessageID, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v62/methods/messages_setTyping.md b/old_docs/API_docs_v62/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v62/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v62/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v62/methods/messages_startBot.md b/old_docs/API_docs_v62/methods/messages_startBot.md
index aa2b2d00..4bf12aa6 100644
--- a/old_docs/API_docs_v62/methods/messages_startBot.md
+++ b/old_docs/API_docs_v62/methods/messages_startBot.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = messages.startBot({bot=InputUser, peer=InputPeer, start_param='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INVALID|This is not a valid bot|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|START_PARAM_EMPTY|The start parameter is empty|
-|START_PARAM_INVALID|Start parameter invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INVALID|This is not a valid bot|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|START_PARAM_EMPTY|The start parameter is empty|
+|400|START_PARAM_INVALID|Start parameter invalid|
diff --git a/old_docs/API_docs_v62/methods/messages_toggleChatAdmins.md b/old_docs/API_docs_v62/methods/messages_toggleChatAdmins.md
index 7851806d..8ea6e65e 100644
--- a/old_docs/API_docs_v62/methods/messages_toggleChatAdmins.md
+++ b/old_docs/API_docs_v62/methods/messages_toggleChatAdmins.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.toggleChatAdmins({chat_id=InputPeer, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v62/methods/messages_toggleDialogPin.md b/old_docs/API_docs_v62/methods/messages_toggleDialogPin.md
index 888f9a25..d44e4abc 100644
--- a/old_docs/API_docs_v62/methods/messages_toggleDialogPin.md
+++ b/old_docs/API_docs_v62/methods/messages_toggleDialogPin.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.toggleDialogPin({pinned=Bool, peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v62/methods/messages_uninstallStickerSet.md b/old_docs/API_docs_v62/methods/messages_uninstallStickerSet.md
index 59abc510..6b7a2006 100644
--- a/old_docs/API_docs_v62/methods/messages_uninstallStickerSet.md
+++ b/old_docs/API_docs_v62/methods/messages_uninstallStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.uninstallStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v62/methods/phone_acceptCall.md b/old_docs/API_docs_v62/methods/phone_acceptCall.md
index b75ac65b..fd07fb55 100644
--- a/old_docs/API_docs_v62/methods/phone_acceptCall.md
+++ b/old_docs/API_docs_v62/methods/phone_acceptCall.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->acceptCall(['peer' => InputPhoneCall, 'g_b' => 'bytes', 'key_fingerprint' => long, 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.acceptCall({peer=InputPhoneCall, g_b='bytes', key_fingerprint=long, protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
diff --git a/old_docs/API_docs_v62/methods/phone_discardCall.md b/old_docs/API_docs_v62/methods/phone_discardCall.md
index e50456eb..6a8d02c2 100644
--- a/old_docs/API_docs_v62/methods/phone_discardCall.md
+++ b/old_docs/API_docs_v62/methods/phone_discardCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|duration|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|reason|[PhoneCallDiscardReason](../types/PhoneCallDiscardReason.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|connection\_id|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->phone->discardCall(['peer' => InputPhoneCall, 'duration' => int, 'reason' => PhoneCallDiscardReason, 'connection_id' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = phone.discardCall({peer=InputPhoneCall, duration=int, reason=PhoneCallDiscardReason, connection_id=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v62/methods/phone_receivedCall.md b/old_docs/API_docs_v62/methods/phone_receivedCall.md
index c43bc8ac..6091424b 100644
--- a/old_docs/API_docs_v62/methods/phone_receivedCall.md
+++ b/old_docs/API_docs_v62/methods/phone_receivedCall.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Bool = phone.receivedCall({peer=InputPhoneCall, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_ALREADY_DECLINED|The call was already declined|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v62/methods/phone_requestCall.md b/old_docs/API_docs_v62/methods/phone_requestCall.md
index 9b8df564..302bc640 100644
--- a/old_docs/API_docs_v62/methods/phone_requestCall.md
+++ b/old_docs/API_docs_v62/methods/phone_requestCall.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->requestCall(['user_id' => InputUser, 'g_a' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.requestCall({user_id=InputUser, g_a='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
+|400|PARTICIPANT_VERSION_OUTDATED|The other participant does not use an up to date telegram client with support for calls|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|403|USER_IS_BLOCKED|You were blocked by this user|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v62/methods/photos_getUserPhotos.md b/old_docs/API_docs_v62/methods/photos_getUserPhotos.md
index 57f5772b..a01f3180 100644
--- a/old_docs/API_docs_v62/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v62/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v62/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v62/methods/photos_updateProfilePhoto.md
index cca2fe30..f7c91ec6 100644
--- a/old_docs/API_docs_v62/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v62/methods/photos_updateProfilePhoto.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v62/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v62/methods/photos_uploadProfilePhoto.md
index 457bade8..badde2de 100644
--- a/old_docs/API_docs_v62/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v62/methods/photos_uploadProfilePhoto.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v62/methods/updates_getChannelDifference.md b/old_docs/API_docs_v62/methods/updates_getChannelDifference.md
index 6fa79529..9735c14a 100644
--- a/old_docs/API_docs_v62/methods/updates_getChannelDifference.md
+++ b/old_docs/API_docs_v62/methods/updates_getChannelDifference.md
@@ -7,8 +7,56 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|force|[Bool](../types/Bool.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|filter|[ChannelMessagesFilter](../types/ChannelMessagesFilter.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_ChannelDifference](../types/updates_ChannelDifference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_ChannelDifference = $MadelineProto->updates->getChannelDifference(['force' => Bool, 'channel' => InputChannel, 'filter' => ChannelMessagesFilter, 'pts' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_ChannelDifference = updates.getChannelDifference({force=Bool, channel=InputChannel, filter=ChannelMessagesFilter, pts=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|400|RANGES_INVALID|Invalid range provided|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v62/methods/updates_getDifference.md b/old_docs/API_docs_v62/methods/updates_getDifference.md
index 33e7d7f2..bcfac4e2 100644
--- a/old_docs/API_docs_v62/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v62/methods/updates_getDifference.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|pts\_total\_limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'pts_total_limit' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, pts_total_limit=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v62/methods/updates_getState.md b/old_docs/API_docs_v62/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v62/methods/updates_getState.md
+++ b/old_docs/API_docs_v62/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v62/methods/upload_getFile.md b/old_docs/API_docs_v62/methods/upload_getFile.md
index c72e6090..d8b433d6 100644
--- a/old_docs/API_docs_v62/methods/upload_getFile.md
+++ b/old_docs/API_docs_v62/methods/upload_getFile.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v62/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v62/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v62/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v62/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v62/methods/upload_saveFilePart.md b/old_docs/API_docs_v62/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v62/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v62/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v62/methods/users_getFullUser.md b/old_docs/API_docs_v62/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v62/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v62/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v62/methods/users_getUsers.md b/old_docs/API_docs_v62/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v62/methods/users_getUsers.md
+++ b/old_docs/API_docs_v62/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v65/methods/README.md b/old_docs/API_docs_v65/methods/README.md
index ba494ee4..a161eab6 100644
--- a/old_docs/API_docs_v65/methods/README.md
+++ b/old_docs/API_docs_v65/methods/README.md
@@ -30,389 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Add a sticker set: messages.installStickerSet
-
-* Add a sticker to recent stickers: messages.saveRecentSticker
-
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add phone number as contact: contacts.importContacts
-
-* Add users to channel/supergroup: channels.inviteToChannel
-
-* Allow or disallow any user to invite users to this channel/supergroup: channels.toggleInvites
-
-* Block a user: contacts.block
-
-* Bots only: send payment form: payments.sendPaymentForm
-
-* Bots only: set precheckout results: messages.setBotPrecheckoutResults
-
-* Bots only: set shipping results: messages.setBotShippingResults
-
-* Bots only: set the callback answer (after a button was clicked): messages.setBotCallbackAnswer
-
-* Bots only: set the results of an inline query: messages.setInlineBotResults
-
-* Call inline bot: messages.getInlineBotResults
-
-* Change notification settings: account.updateNotifySettings
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if about to edit a message or a media caption: messages.getMessageEditData
-
-* Check if an invitation link is valid: messages.checkChatInvite
-
-* Check if this phone number is registered on telegram: auth.checkPhone
-
-* Check if this username is available: account.checkUsername
-
-* Check if this username is free and can be assigned to a channel/supergroup: channels.checkUsername
-
-* Clear all recent stickers: messages.clearRecentStickers
-
-* Clear saved payments info: payments.clearSavedInfo
-
-* Confirm this phone number is associated to this account, obtain phone_code_hash from sendConfirmPhoneCode: account.confirmPhone
-
-* Convert chat to supergroup: messages.migrateChat
-
-* Create a chat (not supergroup): messages.createChat
-
-* Create channel/supergroup: channels.createChannel
-
-* Delete a certain session: account.resetAuthorization
-
-* Delete a channel/supergroup: channels.deleteChannel
-
-* Delete a contact: contacts.deleteContact
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete all messages of a user in a channel/supergroup: channels.deleteUserHistory
-
-* Delete all temporary authorization keys except the ones provided: auth.dropTempAuthKeys
-
-* Delete channel/supergroup messages: channels.deleteMessages
-
-* Delete chat history: messages.deleteHistory
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete this account: account.deleteAccount
-
-* Destroy current authorization key: destroy_auth_key
-
-* Destroy the current MTProto session: destroy_session
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Do not send answer to provided request: rpc_drop_answer
-
-* Download a file through telegram: upload.getWebFile
-
-* Edit a message: messages.editMessage
-
-* Edit a sent inline message: messages.editInlineBotMessage
-
-* Edit admin permissions of a user in a channel/supergroup: channels.editAdmin
-
-* Edit admin permissions: messages.editChatAdmin
-
-* Edit the about text of a channel/supergroup: channels.editAbout
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the photo of a supergroup/channel: channels.editPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Edit the title of a supergroup/channel: channels.editTitle
-
-* Enable all users are admins in normal groups (not supergroups): messages.toggleChatAdmins
-
-* Export chat invite : messages.exportChatInvite
-
-* Export contact as card: contacts.exportCard
-
-* Export the invite link of a channel: channels.exportInvite
-
-* Forward message: messages.forwardMessage
-
-* Forward messages: messages.forwardMessages
-
-* Get a stickerset: messages.getStickerSet
-
-* Get account TTL: account.getAccountTTL
-
-* Get all archived stickers: messages.getArchivedStickers
-
-* Get all chats (not supergroups or channels): messages.getAllChats
-
-* Get all contacts: contacts.getContacts
-
-* Get all logged-in authorizations: account.getAuthorizations
-
-* Get all message drafts: messages.getAllDrafts
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get all supergroups/channels where you're admin: channels.getAdminedPublicChannels
-
-* Get and increase message views: messages.getMessagesViews
-
-* Get blocked users: contacts.getBlocked
-
-* Get call configuration: phone.getCallConfig
-
-* Get channel/supergroup messages: channels.getMessages
-
-* Get channel/supergroup participants (you should use `$MadelineProto->get_pwr_chat($id)` instead): channels.getParticipants
-
-* Get chats in common with a user: messages.getCommonChats
-
-* Get dialog info of peers: messages.getPeerDialogs
-
-* Get document by SHA256 hash: messages.getDocumentByHash
-
-* Get featured stickers: messages.getFeaturedStickers
-
-* Get future salts: get_future_salts
-
-* Get high scores of a game sent in an inline message: messages.getInlineGameHighScores
-
-* Get high scores of a game: messages.getGameHighScores
-
-* Get info about a certain channel/supergroup participant: channels.getParticipant
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about multiple channels/supergroups: channels.getChannels
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get invitation text: help.getInviteText
-
-* Get masks: messages.getMaskStickers
-
-* Get messages: messages.getMessages
-
-* Get most used chats: contacts.getTopPeers
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get payment form: payments.getPaymentForm
-
-* Get payment receipt: payments.getPaymentReceipt
-
-* Get pinned dialogs: messages.getPinnedDialogs
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get recent stickers: messages.getRecentStickers
-
-* Get saved gifs: messages.getSavedGifs
-
-* Get saved payments info: payments.getSavedInfo
-
-* Get server configuration: help.getConfig
-
-* Get stickers attachable to images: messages.getAttachedStickers
-
-* Get temporary password for buying products through bots: account.getTmpPassword
-
-* Get terms of service: help.getTermsOfService
-
-* Get the callback answer of a bot (after clicking a button): messages.getBotCallbackAnswer
-
-* Get the changelog of this app: help.getAppChangelog
-
-* Get the current password: account.getPassword
-
-* Get the link of a message in a channel: channels.exportMessageLink
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Get the settings of apeer: messages.getPeerSettings
-
-* Get webpage preview: messages.getWebPage
-
-* Get webpage preview: messages.getWebPagePreview
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Global message search: messages.searchGlobal
-
-* Hide report spam popup: messages.hideReportSpam
-
-* Import card as contact: contacts.importCard
-
-* Import chat invite: messages.importChatInvite
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Invalidate sent phone code: auth.cancelCode
-
-* Invite friends to telegram!: auth.sendInvites
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invoke with method without returning updates in the socket: invokeWithoutUpdates
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Join a channel/supergroup: channels.joinChannel
-
-* Kick user from channel: channels.kickFromChannel
-
-* Leave a channel/supergroup: channels.leaveChannel
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark channel/supergroup history as read: channels.readHistory
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Mark new featured stickers as read: messages.readFeaturedStickers
-
-* Notify server that you received a call (server will refuse all incoming calls until the current call is over): phone.receivedCall
-
-* Pin or unpin dialog: messages.toggleDialogPin
-
-* Pings the server and causes disconection if the same method is not called within ping_disconnect_delay: ping_delay_disconnect
-
-* Pings the server: ping
-
-* Register device for push notifications: account.registerDevice
-
-* Remove a sticker set: messages.uninstallStickerSet
-
-* Reorder pinned dialogs: messages.reorderPinnedDialogs
-
-* Reorder sticker sets: messages.reorderStickerSets
-
-* Report a message in a supergroup/channel for spam: channels.reportSpam
-
-* Report a peer for spam: messages.reportSpam
-
-* Report for spam a secret chat: messages.reportEncryptedSpam
-
-* Report for spam: account.reportPeer
-
-* Requests Diffie-hellman parameters for key exchange: req_DH_params
-
-* Requests PQ for factorization: req_pq
-
-* Resend the SMS verification code: auth.resendCode
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Reset top peer rating for a certain category/peer: contacts.resetTopPeerRating
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Save a GIF: messages.saveGif
-
-* Save a message draft: messages.saveDraft
-
-* Save call debugging info: phone.saveCallDebug
-
-* Save developer info for telegram contest: contest.saveDeveloperInfo
-
-* Search contacts: contacts.search
-
-* Search gifs: messages.searchGifs
-
-* Search peers or messages: messages.search
-
-* Send a custom request to the bot API: bots.sendCustomRequest
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send an email to recover the 2FA password: auth.requestPasswordRecovery
-
-* Send confirmation phone code: account.sendConfirmPhoneCode
-
-* Send inline bot result obtained with messages.getInlineBotResults to the chat: messages.sendInlineBotResult
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Send webhook request via bot API: bots.answerWebhookJSONQuery
-
-* Set account TTL: account.setAccountTTL
-
-* Set phone call rating: phone.setCallRating
-
-* Set privacy settings: account.setPrivacy
-
-* Set the game score of an inline message: messages.setInlineGameScore
-
-* Set the game score: messages.setGameScore
-
-* Set the pinned message of a channel/supergroup: channels.updatePinnedMessage
-
-* Set the update status of webhook: help.setBotUpdatesStatus
-
-* Sets client diffie-hellman parameters: set_client_DH_params
-
-* Start a bot: messages.startBot
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Toggle channel signatures: channels.toggleSignatures
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update profile info: account.updateProfile
-
-* Update the username of a supergroup/channel: channels.updateUsername
-
-* Update this user's username: account.updateUsername
-
-* Upload profile photo: photos.uploadProfilePhoto
-
-* Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
-
-* Validate requested payment info: payments.validateRequestedInfo
-
diff --git a/old_docs/API_docs_v65/methods/account_changePhone.md b/old_docs/API_docs_v65/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/old_docs/API_docs_v65/methods/account_changePhone.md
+++ b/old_docs/API_docs_v65/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v65/methods/account_checkUsername.md b/old_docs/API_docs_v65/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v65/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v65/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v65/methods/account_confirmPhone.md b/old_docs/API_docs_v65/methods/account_confirmPhone.md
index b730c2dc..c114cd20 100644
--- a/old_docs/API_docs_v65/methods/account_confirmPhone.md
+++ b/old_docs/API_docs_v65/methods/account_confirmPhone.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = account.confirmPhone({phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_HASH_INVALID|Code hash invalid|
-|PHONE_CODE_EMPTY|phone_code is missing|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_HASH_INVALID|Code hash invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
diff --git a/old_docs/API_docs_v65/methods/account_getNotifySettings.md b/old_docs/API_docs_v65/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v65/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v65/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v65/methods/account_getPasswordSettings.md b/old_docs/API_docs_v65/methods/account_getPasswordSettings.md
index 8ebb78ee..8f878365 100644
--- a/old_docs/API_docs_v65/methods/account_getPasswordSettings.md
+++ b/old_docs/API_docs_v65/methods/account_getPasswordSettings.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+Get the current 2FA settings
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+### Return type: [account\_PasswordSettings](../types/account_PasswordSettings.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$account_PasswordSettings = $MadelineProto->account->getPasswordSettings(['current_password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+account_PasswordSettings = account.getPasswordSettings({current_password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v65/methods/account_getPrivacy.md b/old_docs/API_docs_v65/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/old_docs/API_docs_v65/methods/account_getPrivacy.md
+++ b/old_docs/API_docs_v65/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v65/methods/account_getTmpPassword.md b/old_docs/API_docs_v65/methods/account_getTmpPassword.md
index fd8314ee..a74d0f5a 100644
--- a/old_docs/API_docs_v65/methods/account_getTmpPassword.md
+++ b/old_docs/API_docs_v65/methods/account_getTmpPassword.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
account_TmpPassword = account.getTmpPassword({password_hash='bytes', period=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_HASH_INVALID|The provided password hash is invalid|
-|TMP_PASSWORD_DISABLED|The temporary password is disabled|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
+|400|TMP_PASSWORD_DISABLED|The temporary password is disabled|
diff --git a/old_docs/API_docs_v65/methods/account_registerDevice.md b/old_docs/API_docs_v65/methods/account_registerDevice.md
index cf16c2a2..82a6cad9 100644
--- a/old_docs/API_docs_v65/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v65/methods/account_registerDevice.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({token_type=int, token='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v65/methods/account_reportPeer.md b/old_docs/API_docs_v65/methods/account_reportPeer.md
index a203c900..87b080eb 100644
--- a/old_docs/API_docs_v65/methods/account_reportPeer.md
+++ b/old_docs/API_docs_v65/methods/account_reportPeer.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.reportPeer({peer=InputPeer, reason=ReportReason, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v65/methods/account_resetAuthorization.md b/old_docs/API_docs_v65/methods/account_resetAuthorization.md
index c950992c..e8e8ecc4 100644
--- a/old_docs/API_docs_v65/methods/account_resetAuthorization.md
+++ b/old_docs/API_docs_v65/methods/account_resetAuthorization.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.resetAuthorization({hash=long, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v65/methods/account_sendChangePhoneCode.md b/old_docs/API_docs_v65/methods/account_sendChangePhoneCode.md
index d5be60ef..08e5e86e 100644
--- a/old_docs/API_docs_v65/methods/account_sendChangePhoneCode.md
+++ b/old_docs/API_docs_v65/methods/account_sendChangePhoneCode.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendChangePhoneCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v65/methods/account_sendConfirmPhoneCode.md b/old_docs/API_docs_v65/methods/account_sendConfirmPhoneCode.md
index 028a1fdc..9fa7b57e 100644
--- a/old_docs/API_docs_v65/methods/account_sendConfirmPhoneCode.md
+++ b/old_docs/API_docs_v65/methods/account_sendConfirmPhoneCode.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendConfirmPhoneCode({allow_flashcall=Bool, hash='string', current_number=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v65/methods/account_setAccountTTL.md b/old_docs/API_docs_v65/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/old_docs/API_docs_v65/methods/account_setAccountTTL.md
+++ b/old_docs/API_docs_v65/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/old_docs/API_docs_v65/methods/account_setPrivacy.md b/old_docs/API_docs_v65/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/old_docs/API_docs_v65/methods/account_setPrivacy.md
+++ b/old_docs/API_docs_v65/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v65/methods/account_unregisterDevice.md b/old_docs/API_docs_v65/methods/account_unregisterDevice.md
index 589f48b0..a184da43 100644
--- a/old_docs/API_docs_v65/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v65/methods/account_unregisterDevice.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v65/methods/account_updateNotifySettings.md b/old_docs/API_docs_v65/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v65/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v65/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v65/methods/account_updatePasswordSettings.md b/old_docs/API_docs_v65/methods/account_updatePasswordSettings.md
index 80f27228..68e5da6d 100644
--- a/old_docs/API_docs_v65/methods/account_updatePasswordSettings.md
+++ b/old_docs/API_docs_v65/methods/account_updatePasswordSettings.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+|new\_settings|[account\_PasswordInputSettings](../types/account_PasswordInputSettings.md) | New 2FA settings | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->account->updatePasswordSettings(['current_password_hash' => 'bytes', 'new_settings' => account_PasswordInputSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = account.updatePasswordSettings({current_password_hash='bytes', new_settings=account_PasswordInputSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EMAIL_UNCONFIRMED|Email unconfirmed|
+|400|EMAIL_UNCONFIRMED_X|The provided email isn't confirmed, X is the length of the verification code that was just sent to the email.|
+|400|NEW_SALT_INVALID|The new salt is invalid|
+|400|NEW_SETTINGS_INVALID|The new settings are invalid|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v65/methods/account_updateProfile.md b/old_docs/API_docs_v65/methods/account_updateProfile.md
index af5b6a0f..0d74c5e5 100644
--- a/old_docs/API_docs_v65/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v65/methods/account_updateProfile.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v65/methods/account_updateStatus.md b/old_docs/API_docs_v65/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v65/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v65/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v65/methods/account_updateUsername.md b/old_docs/API_docs_v65/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v65/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v65/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v65/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v65/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v65/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v65/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v65/methods/auth_cancelCode.md b/old_docs/API_docs_v65/methods/auth_cancelCode.md
index fcbd7713..a69e0118 100644
--- a/old_docs/API_docs_v65/methods/auth_cancelCode.md
+++ b/old_docs/API_docs_v65/methods/auth_cancelCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = auth.cancelCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v65/methods/auth_checkPassword.md b/old_docs/API_docs_v65/methods/auth_checkPassword.md
index 8d76c483..db65cb56 100644
--- a/old_docs/API_docs_v65/methods/auth_checkPassword.md
+++ b/old_docs/API_docs_v65/methods/auth_checkPassword.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->checkPassword(['password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.checkPassword({password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v65/methods/auth_checkPhone.md b/old_docs/API_docs_v65/methods/auth_checkPhone.md
index f3e32365..e974ce7f 100644
--- a/old_docs/API_docs_v65/methods/auth_checkPhone.md
+++ b/old_docs/API_docs_v65/methods/auth_checkPhone.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
auth_CheckedPhone = auth.checkPhone({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v65/methods/auth_exportAuthorization.md b/old_docs/API_docs_v65/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v65/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v65/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v65/methods/auth_importAuthorization.md b/old_docs/API_docs_v65/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v65/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v65/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v65/methods/auth_importBotAuthorization.md b/old_docs/API_docs_v65/methods/auth_importBotAuthorization.md
index 1a98c1b9..4de4ba4b 100644
--- a/old_docs/API_docs_v65/methods/auth_importBotAuthorization.md
+++ b/old_docs/API_docs_v65/methods/auth_importBotAuthorization.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|a|[Bool](../types/Bool.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Optional|
+|b|[Bool](../types/Bool.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Optional|
+|c|[Bool](../types/Bool.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Optional|
+|d|[Bool](../types/Bool.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Optional|
+|api\_id|[int](../types/int.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_hash|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|bot\_auth\_token|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importBotAuthorization(['a' => Bool, 'b' => Bool, 'c' => Bool, 'd' => Bool, 'api_id' => int, 'api_hash' => 'string', 'bot_auth_token' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importBotAuthorization({a=Bool, b=Bool, c=Bool, d=Bool, api_id=int, api_hash='string', bot_auth_token='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ACCESS_TOKEN_EXPIRED|Access token expired|
+|400|ACCESS_TOKEN_INVALID|Access token invalid|
+|400|API_ID_INVALID|API ID invalid|
diff --git a/old_docs/API_docs_v65/methods/auth_logOut.md b/old_docs/API_docs_v65/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v65/methods/auth_logOut.md
+++ b/old_docs/API_docs_v65/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v65/methods/auth_recoverPassword.md b/old_docs/API_docs_v65/methods/auth_recoverPassword.md
index 83ff5aed..d4bad9c5 100644
--- a/old_docs/API_docs_v65/methods/auth_recoverPassword.md
+++ b/old_docs/API_docs_v65/methods/auth_recoverPassword.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
auth_Authorization = auth.recoverPassword({code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_EMPTY|The provided code is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_EMPTY|The provided code is empty|
diff --git a/old_docs/API_docs_v65/methods/auth_requestPasswordRecovery.md b/old_docs/API_docs_v65/methods/auth_requestPasswordRecovery.md
index 1864bbb0..b6ad57ba 100644
--- a/old_docs/API_docs_v65/methods/auth_requestPasswordRecovery.md
+++ b/old_docs/API_docs_v65/methods/auth_requestPasswordRecovery.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
auth_PasswordRecovery = auth.requestPasswordRecovery({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_EMPTY|The provided password is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_EMPTY|The provided password is empty|
diff --git a/old_docs/API_docs_v65/methods/auth_resendCode.md b/old_docs/API_docs_v65/methods/auth_resendCode.md
index ff7868ea..ec730d75 100644
--- a/old_docs/API_docs_v65/methods/auth_resendCode.md
+++ b/old_docs/API_docs_v65/methods/auth_resendCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = auth.resendCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v65/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v65/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v65/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v65/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v65/methods/auth_sendCode.md b/old_docs/API_docs_v65/methods/auth_sendCode.md
index 9afebb55..1e9d1a4e 100644
--- a/old_docs/API_docs_v65/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v65/methods/auth_sendCode.md
@@ -7,8 +7,59 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|allow\_flashcall|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|current\_number|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['allow_flashcall' => Bool, 'phone_number' => 'string', 'current_number' => Bool, 'api_id' => int, 'api_hash' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, api_id=int, api_hash='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v65/methods/auth_sendInvites.md b/old_docs/API_docs_v65/methods/auth_sendInvites.md
index e10c1109..4c11023e 100644
--- a/old_docs/API_docs_v65/methods/auth_sendInvites.md
+++ b/old_docs/API_docs_v65/methods/auth_sendInvites.md
@@ -49,10 +49,10 @@ Bool = auth.sendInvites({phone_numbers={'string'}, message='string', })
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_EMPTY|The provided message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_EMPTY|The provided message is empty|
diff --git a/old_docs/API_docs_v65/methods/auth_signIn.md b/old_docs/API_docs_v65/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v65/methods/auth_signIn.md
+++ b/old_docs/API_docs_v65/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v65/methods/auth_signUp.md b/old_docs/API_docs_v65/methods/auth_signUp.md
index 15960145..31154486 100644
--- a/old_docs/API_docs_v65/methods/auth_signUp.md
+++ b/old_docs/API_docs_v65/methods/auth_signUp.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', phone_code='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v65/methods/bots_answerWebhookJSONQuery.md b/old_docs/API_docs_v65/methods/bots_answerWebhookJSONQuery.md
index ae0fa6d9..f2233514 100644
--- a/old_docs/API_docs_v65/methods/bots_answerWebhookJSONQuery.md
+++ b/old_docs/API_docs_v65/methods/bots_answerWebhookJSONQuery.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = bots.answerWebhookJSONQuery({query_id=long, data=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v65/methods/bots_sendCustomRequest.md b/old_docs/API_docs_v65/methods/bots_sendCustomRequest.md
index c1fd8183..8a6a2df5 100644
--- a/old_docs/API_docs_v65/methods/bots_sendCustomRequest.md
+++ b/old_docs/API_docs_v65/methods/bots_sendCustomRequest.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
DataJSON = bots.sendCustomRequest({custom_method='string', params=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v65/methods/channels_checkUsername.md b/old_docs/API_docs_v65/methods/channels_checkUsername.md
index 483a2f6f..52365d34 100644
--- a/old_docs/API_docs_v65/methods/channels_checkUsername.md
+++ b/old_docs/API_docs_v65/methods/channels_checkUsername.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Bool = channels.checkUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v65/methods/channels_createChannel.md b/old_docs/API_docs_v65/methods/channels_createChannel.md
index b924e6a6..ecaee0ef 100644
--- a/old_docs/API_docs_v65/methods/channels_createChannel.md
+++ b/old_docs/API_docs_v65/methods/channels_createChannel.md
@@ -45,12 +45,12 @@ Or, if you're into Lua:
Updates = channels.createChannel({broadcast=Bool, megagroup=Bool, title='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_TITLE_EMPTY|No chat title provided|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
+|406|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v65/methods/channels_deleteChannel.md b/old_docs/API_docs_v65/methods/channels_deleteChannel.md
index 53a9c23d..1b8d2d48 100644
--- a/old_docs/API_docs_v65/methods/channels_deleteChannel.md
+++ b/old_docs/API_docs_v65/methods/channels_deleteChannel.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Updates = channels.deleteChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v65/methods/channels_deleteMessages.md b/old_docs/API_docs_v65/methods/channels_deleteMessages.md
index f76a9ad1..463ebad0 100644
--- a/old_docs/API_docs_v65/methods/channels_deleteMessages.md
+++ b/old_docs/API_docs_v65/methods/channels_deleteMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_AffectedMessages = channels.deleteMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v65/methods/channels_deleteUserHistory.md b/old_docs/API_docs_v65/methods/channels_deleteUserHistory.md
index 0a4e7d82..33905a7e 100644
--- a/old_docs/API_docs_v65/methods/channels_deleteUserHistory.md
+++ b/old_docs/API_docs_v65/methods/channels_deleteUserHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedHistory = channels.deleteUserHistory({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v65/methods/channels_editAbout.md b/old_docs/API_docs_v65/methods/channels_editAbout.md
index 47111668..d5e090e0 100644
--- a/old_docs/API_docs_v65/methods/channels_editAbout.md
+++ b/old_docs/API_docs_v65/methods/channels_editAbout.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Bool = channels.editAbout({channel=InputChannel, about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
-|CHAT_ABOUT_TOO_LONG|Chat about too long|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
+|400|CHAT_ABOUT_TOO_LONG|Chat about too long|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v65/methods/channels_editAdmin.md b/old_docs/API_docs_v65/methods/channels_editAdmin.md
index 3fbaf64d..229318fb 100644
--- a/old_docs/API_docs_v65/methods/channels_editAdmin.md
+++ b/old_docs/API_docs_v65/methods/channels_editAdmin.md
@@ -44,19 +44,19 @@ Or, if you're into Lua:
Updates = channels.editAdmin({channel=InputChannel, user_id=InputUser, role=ChannelParticipantRole, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ADMINS_TOO_MUCH|There are too many admins|
-|BOT_CHANNELS_NA|Bots can't edit admin privileges|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
-|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ADMINS_TOO_MUCH|There are too many admins|
+|400|BOT_CHANNELS_NA|Bots can't edit admin privileges|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
+|403|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v65/methods/channels_editPhoto.md b/old_docs/API_docs_v65/methods/channels_editPhoto.md
index bec0ba48..caef32d5 100644
--- a/old_docs/API_docs_v65/methods/channels_editPhoto.md
+++ b/old_docs/API_docs_v65/methods/channels_editPhoto.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editPhoto({channel=InputChannel, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|PHOTO_INVALID|Photo invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|PHOTO_INVALID|Photo invalid|
diff --git a/old_docs/API_docs_v65/methods/channels_editTitle.md b/old_docs/API_docs_v65/methods/channels_editTitle.md
index b5efeb39..d7cb33da 100644
--- a/old_docs/API_docs_v65/methods/channels_editTitle.md
+++ b/old_docs/API_docs_v65/methods/channels_editTitle.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editTitle({channel=InputChannel, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v65/methods/channels_exportInvite.md b/old_docs/API_docs_v65/methods/channels_exportInvite.md
index 0918b3e7..9d578deb 100644
--- a/old_docs/API_docs_v65/methods/channels_exportInvite.md
+++ b/old_docs/API_docs_v65/methods/channels_exportInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ExportedChatInvite = channels.exportInvite({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INVITE_HASH_EXPIRED|The invite link has expired|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
diff --git a/old_docs/API_docs_v65/methods/channels_exportMessageLink.md b/old_docs/API_docs_v65/methods/channels_exportMessageLink.md
index 66cd7584..2e92ee5e 100644
--- a/old_docs/API_docs_v65/methods/channels_exportMessageLink.md
+++ b/old_docs/API_docs_v65/methods/channels_exportMessageLink.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
ExportedMessageLink = channels.exportMessageLink({channel=InputChannel, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v65/methods/channels_getChannels.md b/old_docs/API_docs_v65/methods/channels_getChannels.md
index 78d50641..95d7a188 100644
--- a/old_docs/API_docs_v65/methods/channels_getChannels.md
+++ b/old_docs/API_docs_v65/methods/channels_getChannels.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = channels.getChannels({id={InputChannel}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v65/methods/channels_getFullChannel.md b/old_docs/API_docs_v65/methods/channels_getFullChannel.md
index 45a8ec72..ebd53de4 100644
--- a/old_docs/API_docs_v65/methods/channels_getFullChannel.md
+++ b/old_docs/API_docs_v65/methods/channels_getFullChannel.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->channels->getFullChannel(['channel' => InputChannel, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = channels.getFullChannel({channel=InputChannel, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v65/methods/channels_getMessages.md b/old_docs/API_docs_v65/methods/channels_getMessages.md
index aa85d640..57bcc60f 100644
--- a/old_docs/API_docs_v65/methods/channels_getMessages.md
+++ b/old_docs/API_docs_v65/methods/channels_getMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_Messages = channels.getMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
diff --git a/old_docs/API_docs_v65/methods/channels_getParticipant.md b/old_docs/API_docs_v65/methods/channels_getParticipant.md
index 6633114f..808156fd 100644
--- a/old_docs/API_docs_v65/methods/channels_getParticipant.md
+++ b/old_docs/API_docs_v65/methods/channels_getParticipant.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
channels_ChannelParticipant = channels.getParticipant({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v65/methods/channels_getParticipants.md b/old_docs/API_docs_v65/methods/channels_getParticipants.md
index d4bd8779..21d4a418 100644
--- a/old_docs/API_docs_v65/methods/channels_getParticipants.md
+++ b/old_docs/API_docs_v65/methods/channels_getParticipants.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, filter=ChannelParticipantsFilter, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v65/methods/channels_inviteToChannel.md b/old_docs/API_docs_v65/methods/channels_inviteToChannel.md
index f7093f13..d8c5e88a 100644
--- a/old_docs/API_docs_v65/methods/channels_inviteToChannel.md
+++ b/old_docs/API_docs_v65/methods/channels_inviteToChannel.md
@@ -43,25 +43,25 @@ Or, if you're into Lua:
Updates = channels.inviteToChannel({channel=InputChannel, users={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
-|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_BLOCKED|User blocked|
-|USER_BOT|Bots can only be admins in channels.|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_KICKED|This user was kicked from this supergroup/channel|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
+|400|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_BLOCKED|User blocked|
+|400|USER_BOT|Bots can only be admins in channels.|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_KICKED|This user was kicked from this supergroup/channel|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v65/methods/channels_joinChannel.md b/old_docs/API_docs_v65/methods/channels_joinChannel.md
index b056031a..a4a7c177 100644
--- a/old_docs/API_docs_v65/methods/channels_joinChannel.md
+++ b/old_docs/API_docs_v65/methods/channels_joinChannel.md
@@ -42,15 +42,15 @@ Or, if you're into Lua:
Updates = channels.joinChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
diff --git a/old_docs/API_docs_v65/methods/channels_leaveChannel.md b/old_docs/API_docs_v65/methods/channels_leaveChannel.md
index fdea13ba..6538d443 100644
--- a/old_docs/API_docs_v65/methods/channels_leaveChannel.md
+++ b/old_docs/API_docs_v65/methods/channels_leaveChannel.md
@@ -42,14 +42,14 @@ Or, if you're into Lua:
Updates = channels.leaveChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
-|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
diff --git a/old_docs/API_docs_v65/methods/channels_readHistory.md b/old_docs/API_docs_v65/methods/channels_readHistory.md
index 93dc075f..3532dae0 100644
--- a/old_docs/API_docs_v65/methods/channels_readHistory.md
+++ b/old_docs/API_docs_v65/methods/channels_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readHistory({channel=InputChannel, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v65/methods/channels_reportSpam.md b/old_docs/API_docs_v65/methods/channels_reportSpam.md
index db80676a..7e273cc5 100644
--- a/old_docs/API_docs_v65/methods/channels_reportSpam.md
+++ b/old_docs/API_docs_v65/methods/channels_reportSpam.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
Bool = channels.reportSpam({channel=InputChannel, user_id=InputUser, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
diff --git a/old_docs/API_docs_v65/methods/channels_toggleInvites.md b/old_docs/API_docs_v65/methods/channels_toggleInvites.md
index e5d3fba1..6266d30b 100644
--- a/old_docs/API_docs_v65/methods/channels_toggleInvites.md
+++ b/old_docs/API_docs_v65/methods/channels_toggleInvites.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.toggleInvites({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v65/methods/channels_toggleSignatures.md b/old_docs/API_docs_v65/methods/channels_toggleSignatures.md
index cdfc0fda..f8624946 100644
--- a/old_docs/API_docs_v65/methods/channels_toggleSignatures.md
+++ b/old_docs/API_docs_v65/methods/channels_toggleSignatures.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = channels.toggleSignatures({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v65/methods/channels_updatePinnedMessage.md b/old_docs/API_docs_v65/methods/channels_updatePinnedMessage.md
index 53733a22..37d7c3c0 100644
--- a/old_docs/API_docs_v65/methods/channels_updatePinnedMessage.md
+++ b/old_docs/API_docs_v65/methods/channels_updatePinnedMessage.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = channels.updatePinnedMessage({silent=Bool, channel=InputChannel, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v65/methods/channels_updateUsername.md b/old_docs/API_docs_v65/methods/channels_updateUsername.md
index 677712f9..48d250e6 100644
--- a/old_docs/API_docs_v65/methods/channels_updateUsername.md
+++ b/old_docs/API_docs_v65/methods/channels_updateUsername.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Bool = channels.updateUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_OCCUPIED|The provided username is already occupied|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
diff --git a/old_docs/API_docs_v65/methods/contacts_block.md b/old_docs/API_docs_v65/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v65/methods/contacts_block.md
+++ b/old_docs/API_docs_v65/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v65/methods/contacts_deleteContact.md b/old_docs/API_docs_v65/methods/contacts_deleteContact.md
index ba9569e4..a9321d64 100644
--- a/old_docs/API_docs_v65/methods/contacts_deleteContact.md
+++ b/old_docs/API_docs_v65/methods/contacts_deleteContact.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
contacts_Link = contacts.deleteContact({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v65/methods/contacts_deleteContacts.md b/old_docs/API_docs_v65/methods/contacts_deleteContacts.md
index bfc91fdd..3c8e90f0 100644
--- a/old_docs/API_docs_v65/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v65/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v65/methods/contacts_getStatuses.md b/old_docs/API_docs_v65/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v65/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v65/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v65/methods/contacts_getTopPeers.md b/old_docs/API_docs_v65/methods/contacts_getTopPeers.md
index 0552f184..1aba4f85 100644
--- a/old_docs/API_docs_v65/methods/contacts_getTopPeers.md
+++ b/old_docs/API_docs_v65/methods/contacts_getTopPeers.md
@@ -49,10 +49,10 @@ Or, if you're into Lua:
contacts_TopPeers = contacts.getTopPeers({correspondents=Bool, bots_pm=Bool, bots_inline=Bool, groups=Bool, channels=Bool, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TYPES_EMPTY|No top peer type was provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TYPES_EMPTY|No top peer type was provided|
diff --git a/old_docs/API_docs_v65/methods/contacts_importCard.md b/old_docs/API_docs_v65/methods/contacts_importCard.md
index 15addde1..ed3d17fe 100644
--- a/old_docs/API_docs_v65/methods/contacts_importCard.md
+++ b/old_docs/API_docs_v65/methods/contacts_importCard.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
User = contacts.importCard({export_card={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|EXPORT_CARD_INVALID|Provided card is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EXPORT_CARD_INVALID|Provided card is invalid|
diff --git a/old_docs/API_docs_v65/methods/contacts_resetTopPeerRating.md b/old_docs/API_docs_v65/methods/contacts_resetTopPeerRating.md
index 43cf1685..787be177 100644
--- a/old_docs/API_docs_v65/methods/contacts_resetTopPeerRating.md
+++ b/old_docs/API_docs_v65/methods/contacts_resetTopPeerRating.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = contacts.resetTopPeerRating({category=TopPeerCategory, peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v65/methods/contacts_resolveUsername.md b/old_docs/API_docs_v65/methods/contacts_resolveUsername.md
index fab56bb1..68f709db 100644
--- a/old_docs/API_docs_v65/methods/contacts_resolveUsername.md
+++ b/old_docs/API_docs_v65/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [contacts\_ResolvedPeer](../types/contacts_ResolvedPeer.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$contacts_ResolvedPeer = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+contacts_ResolvedPeer = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v65/methods/contacts_search.md b/old_docs/API_docs_v65/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v65/methods/contacts_search.md
+++ b/old_docs/API_docs_v65/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v65/methods/contacts_unblock.md b/old_docs/API_docs_v65/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v65/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v65/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v65/methods/help_getConfig.md b/old_docs/API_docs_v65/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v65/methods/help_getConfig.md
+++ b/old_docs/API_docs_v65/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v65/methods/initConnection.md b/old_docs/API_docs_v65/methods/initConnection.md
index 659f4e6b..a41f0c4d 100644
--- a/old_docs/API_docs_v65/methods/initConnection.md
+++ b/old_docs/API_docs_v65/methods/initConnection.md
@@ -47,11 +47,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', lang_code='string', query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v65/methods/invokeWithLayer.md b/old_docs/API_docs_v65/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/old_docs/API_docs_v65/methods/invokeWithLayer.md
+++ b/old_docs/API_docs_v65/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v65/methods/messages_acceptEncryption.md b/old_docs/API_docs_v65/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v65/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v65/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v65/methods/messages_addChatUser.md b/old_docs/API_docs_v65/methods/messages_addChatUser.md
index bc0d6253..b5e164b2 100644
--- a/old_docs/API_docs_v65/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v65/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
Updates = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v65/methods/messages_checkChatInvite.md b/old_docs/API_docs_v65/methods/messages_checkChatInvite.md
index de28b09b..0d13d55e 100644
--- a/old_docs/API_docs_v65/methods/messages_checkChatInvite.md
+++ b/old_docs/API_docs_v65/methods/messages_checkChatInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ChatInvite = messages.checkChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
diff --git a/old_docs/API_docs_v65/methods/messages_createChat.md b/old_docs/API_docs_v65/methods/messages_createChat.md
index 8f6e9672..b2623f1d 100644
--- a/old_docs/API_docs_v65/methods/messages_createChat.md
+++ b/old_docs/API_docs_v65/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v65/methods/messages_deleteChatUser.md b/old_docs/API_docs_v65/methods/messages_deleteChatUser.md
index 63529571..11b9b220 100644
--- a/old_docs/API_docs_v65/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v65/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v65/methods/messages_deleteHistory.md b/old_docs/API_docs_v65/methods/messages_deleteHistory.md
index 2ade177e..338c2cdf 100644
--- a/old_docs/API_docs_v65/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v65/methods/messages_deleteHistory.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({just_clear=Bool, peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v65/methods/messages_deleteMessages.md b/old_docs/API_docs_v65/methods/messages_deleteMessages.md
index 4c65080a..41517dd0 100644
--- a/old_docs/API_docs_v65/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v65/methods/messages_deleteMessages.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.deleteMessages({revoke=Bool, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v65/methods/messages_discardEncryption.md b/old_docs/API_docs_v65/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v65/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v65/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v65/methods/messages_editChatAdmin.md b/old_docs/API_docs_v65/methods/messages_editChatAdmin.md
index 2b4dc94c..6f6c1376 100644
--- a/old_docs/API_docs_v65/methods/messages_editChatAdmin.md
+++ b/old_docs/API_docs_v65/methods/messages_editChatAdmin.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.editChatAdmin({chat_id=InputPeer, user_id=InputUser, is_admin=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v65/methods/messages_editChatPhoto.md b/old_docs/API_docs_v65/methods/messages_editChatPhoto.md
index 2a82c232..a21a03b9 100644
--- a/old_docs/API_docs_v65/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v65/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Updates = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v65/methods/messages_editChatTitle.md b/old_docs/API_docs_v65/methods/messages_editChatTitle.md
index 2c338ad6..72f78741 100644
--- a/old_docs/API_docs_v65/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v65/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v65/methods/messages_editInlineBotMessage.md b/old_docs/API_docs_v65/methods/messages_editInlineBotMessage.md
index f22642f2..c274cbb9 100644
--- a/old_docs/API_docs_v65/methods/messages_editInlineBotMessage.md
+++ b/old_docs/API_docs_v65/methods/messages_editInlineBotMessage.md
@@ -95,11 +95,11 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
diff --git a/old_docs/API_docs_v65/methods/messages_editMessage.md b/old_docs/API_docs_v65/methods/messages_editMessage.md
index 05fee4b3..d3ce5261 100644
--- a/old_docs/API_docs_v65/methods/messages_editMessage.md
+++ b/old_docs/API_docs_v65/methods/messages_editMessage.md
@@ -96,20 +96,20 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v65/methods/messages_exportChatInvite.md b/old_docs/API_docs_v65/methods/messages_exportChatInvite.md
index f3449e79..bc6272e4 100644
--- a/old_docs/API_docs_v65/methods/messages_exportChatInvite.md
+++ b/old_docs/API_docs_v65/methods/messages_exportChatInvite.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
ExportedChatInvite = messages.exportChatInvite({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v65/methods/messages_forwardMessage.md b/old_docs/API_docs_v65/methods/messages_forwardMessage.md
index c8e0b18d..95f6d2f3 100644
--- a/old_docs/API_docs_v65/methods/messages_forwardMessage.md
+++ b/old_docs/API_docs_v65/methods/messages_forwardMessage.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Updates = messages.forwardMessage({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|YOU_BLOCKED_USER|You blocked this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|YOU_BLOCKED_USER|You blocked this user|
diff --git a/old_docs/API_docs_v65/methods/messages_forwardMessages.md b/old_docs/API_docs_v65/methods/messages_forwardMessages.md
index db772b23..2d751dcb 100644
--- a/old_docs/API_docs_v65/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v65/methods/messages_forwardMessages.md
@@ -47,29 +47,29 @@ Or, if you're into Lua:
Updates = messages.forwardMessages({silent=Bool, background=Bool, with_my_score=Bool, from_peer=InputPeer, id={int}, to_peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v65/methods/messages_getBotCallbackAnswer.md b/old_docs/API_docs_v65/methods/messages_getBotCallbackAnswer.md
index f97fa5b0..3f8cc23b 100644
--- a/old_docs/API_docs_v65/methods/messages_getBotCallbackAnswer.md
+++ b/old_docs/API_docs_v65/methods/messages_getBotCallbackAnswer.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
messages_BotCallbackAnswer = messages.getBotCallbackAnswer({game=Bool, peer=InputPeer, msg_id=int, data='bytes', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v65/methods/messages_getChats.md b/old_docs/API_docs_v65/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/old_docs/API_docs_v65/methods/messages_getChats.md
+++ b/old_docs/API_docs_v65/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v65/methods/messages_getCommonChats.md b/old_docs/API_docs_v65/methods/messages_getCommonChats.md
index 9470a0ee..cff23c3f 100644
--- a/old_docs/API_docs_v65/methods/messages_getCommonChats.md
+++ b/old_docs/API_docs_v65/methods/messages_getCommonChats.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_Chats = messages.getCommonChats({user_id=InputUser, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v65/methods/messages_getDhConfig.md b/old_docs/API_docs_v65/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v65/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v65/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v65/methods/messages_getDialogs.md b/old_docs/API_docs_v65/methods/messages_getDialogs.md
index 28590399..e95ea75b 100644
--- a/old_docs/API_docs_v65/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v65/methods/messages_getDialogs.md
@@ -46,13 +46,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({exclude_pinned=Bool, offset_date=int, offset_id=int, offset_peer=InputPeer, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v65/methods/messages_getDocumentByHash.md b/old_docs/API_docs_v65/methods/messages_getDocumentByHash.md
index 73a235d5..06469c52 100644
--- a/old_docs/API_docs_v65/methods/messages_getDocumentByHash.md
+++ b/old_docs/API_docs_v65/methods/messages_getDocumentByHash.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Document = messages.getDocumentByHash({sha256='bytes', size=int, mime_type='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
diff --git a/old_docs/API_docs_v65/methods/messages_getFullChat.md b/old_docs/API_docs_v65/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v65/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v65/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v65/methods/messages_getGameHighScores.md b/old_docs/API_docs_v65/methods/messages_getGameHighScores.md
index 249e1d09..5c484bbb 100644
--- a/old_docs/API_docs_v65/methods/messages_getGameHighScores.md
+++ b/old_docs/API_docs_v65/methods/messages_getGameHighScores.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
messages_HighScores = messages.getGameHighScores({peer=InputPeer, id=int, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v65/methods/messages_getHistory.md b/old_docs/API_docs_v65/methods/messages_getHistory.md
index ced9753f..68f746ba 100644
--- a/old_docs/API_docs_v65/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v65/methods/messages_getHistory.md
@@ -48,16 +48,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset_id=int, offset_date=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v65/methods/messages_getInlineBotResults.md b/old_docs/API_docs_v65/methods/messages_getInlineBotResults.md
index 1efcb412..17d678b7 100644
--- a/old_docs/API_docs_v65/methods/messages_getInlineBotResults.md
+++ b/old_docs/API_docs_v65/methods/messages_getInlineBotResults.md
@@ -46,13 +46,13 @@ Or, if you're into Lua:
messages_BotResults = messages.getInlineBotResults({bot=InputUser, peer=InputPeer, geo_point=InputGeoPoint, query='string', offset='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
-|BOT_INVALID|This is not a valid bot|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
+|400|BOT_INVALID|This is not a valid bot|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v65/methods/messages_getInlineGameHighScores.md b/old_docs/API_docs_v65/methods/messages_getInlineGameHighScores.md
index e68c6db8..ac33b6b8 100644
--- a/old_docs/API_docs_v65/methods/messages_getInlineGameHighScores.md
+++ b/old_docs/API_docs_v65/methods/messages_getInlineGameHighScores.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_HighScores = messages.getInlineGameHighScores({id=InputBotInlineMessageID, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v65/methods/messages_getMessageEditData.md b/old_docs/API_docs_v65/methods/messages_getMessageEditData.md
index 7f1b7164..b907d78c 100644
--- a/old_docs/API_docs_v65/methods/messages_getMessageEditData.md
+++ b/old_docs/API_docs_v65/methods/messages_getMessageEditData.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_MessageEditData = messages.getMessageEditData({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v65/methods/messages_getMessagesViews.md b/old_docs/API_docs_v65/methods/messages_getMessagesViews.md
index 3d490315..143e568c 100644
--- a/old_docs/API_docs_v65/methods/messages_getMessagesViews.md
+++ b/old_docs/API_docs_v65/methods/messages_getMessagesViews.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
Vector_of_int = messages.getMessagesViews({peer=InputPeer, id={int}, increment=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v65/methods/messages_getPeerDialogs.md b/old_docs/API_docs_v65/methods/messages_getPeerDialogs.md
index 6811001a..0c770183 100644
--- a/old_docs/API_docs_v65/methods/messages_getPeerDialogs.md
+++ b/old_docs/API_docs_v65/methods/messages_getPeerDialogs.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPeerDialogs({peers={InputPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v65/methods/messages_getPeerSettings.md b/old_docs/API_docs_v65/methods/messages_getPeerSettings.md
index 26dafb9b..69032ff5 100644
--- a/old_docs/API_docs_v65/methods/messages_getPeerSettings.md
+++ b/old_docs/API_docs_v65/methods/messages_getPeerSettings.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
PeerSettings = messages.getPeerSettings({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v65/methods/messages_getPinnedDialogs.md b/old_docs/API_docs_v65/methods/messages_getPinnedDialogs.md
index 828d622e..f106098d 100644
--- a/old_docs/API_docs_v65/methods/messages_getPinnedDialogs.md
+++ b/old_docs/API_docs_v65/methods/messages_getPinnedDialogs.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPinnedDialogs({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FOLDER_ID_INVALID|Invalid folder ID|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FOLDER_ID_INVALID|Invalid folder ID|
diff --git a/old_docs/API_docs_v65/methods/messages_getStickerSet.md b/old_docs/API_docs_v65/methods/messages_getStickerSet.md
index 57bce84d..487316cc 100644
--- a/old_docs/API_docs_v65/methods/messages_getStickerSet.md
+++ b/old_docs/API_docs_v65/methods/messages_getStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_StickerSet = messages.getStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v65/methods/messages_getWebPage.md b/old_docs/API_docs_v65/methods/messages_getWebPage.md
index ce51ff41..63ef5e93 100644
--- a/old_docs/API_docs_v65/methods/messages_getWebPage.md
+++ b/old_docs/API_docs_v65/methods/messages_getWebPage.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
WebPage = messages.getWebPage({url='string', hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|WC_CONVERT_URL_INVALID|WC convert URL invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|WC_CONVERT_URL_INVALID|WC convert URL invalid|
diff --git a/old_docs/API_docs_v65/methods/messages_hideReportSpam.md b/old_docs/API_docs_v65/methods/messages_hideReportSpam.md
index c4bf7399..57756d2e 100644
--- a/old_docs/API_docs_v65/methods/messages_hideReportSpam.md
+++ b/old_docs/API_docs_v65/methods/messages_hideReportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.hideReportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v65/methods/messages_importChatInvite.md b/old_docs/API_docs_v65/methods/messages_importChatInvite.md
index 12120867..101b4b19 100644
--- a/old_docs/API_docs_v65/methods/messages_importChatInvite.md
+++ b/old_docs/API_docs_v65/methods/messages_importChatInvite.md
@@ -42,16 +42,16 @@ Or, if you're into Lua:
Updates = messages.importChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v65/methods/messages_installStickerSet.md b/old_docs/API_docs_v65/methods/messages_installStickerSet.md
index 21a57a85..67f2aca0 100644
--- a/old_docs/API_docs_v65/methods/messages_installStickerSet.md
+++ b/old_docs/API_docs_v65/methods/messages_installStickerSet.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_StickerSetInstallResult = messages.installStickerSet({stickerset=InputStickerSet, archived=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v65/methods/messages_migrateChat.md b/old_docs/API_docs_v65/methods/messages_migrateChat.md
index a72f4c11..ee4010eb 100644
--- a/old_docs/API_docs_v65/methods/messages_migrateChat.md
+++ b/old_docs/API_docs_v65/methods/messages_migrateChat.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
Updates = messages.migrateChat({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v65/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v65/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v65/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v65/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v65/methods/messages_readHistory.md b/old_docs/API_docs_v65/methods/messages_readHistory.md
index 2ad5cd09..a7f0eca7 100644
--- a/old_docs/API_docs_v65/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v65/methods/messages_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.readHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v65/methods/messages_receivedQueue.md b/old_docs/API_docs_v65/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v65/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v65/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v65/methods/messages_reorderPinnedDialogs.md b/old_docs/API_docs_v65/methods/messages_reorderPinnedDialogs.md
index d6759a55..d89bf27a 100644
--- a/old_docs/API_docs_v65/methods/messages_reorderPinnedDialogs.md
+++ b/old_docs/API_docs_v65/methods/messages_reorderPinnedDialogs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.reorderPinnedDialogs({force=Bool, order={InputPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v65/methods/messages_reportEncryptedSpam.md b/old_docs/API_docs_v65/methods/messages_reportEncryptedSpam.md
index 9b1e868b..aeac27ef 100644
--- a/old_docs/API_docs_v65/methods/messages_reportEncryptedSpam.md
+++ b/old_docs/API_docs_v65/methods/messages_reportEncryptedSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportEncryptedSpam({peer=InputEncryptedChat, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v65/methods/messages_reportSpam.md b/old_docs/API_docs_v65/methods/messages_reportSpam.md
index e92fba13..dc256e55 100644
--- a/old_docs/API_docs_v65/methods/messages_reportSpam.md
+++ b/old_docs/API_docs_v65/methods/messages_reportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v65/methods/messages_requestEncryption.md b/old_docs/API_docs_v65/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v65/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v65/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v65/methods/messages_saveDraft.md b/old_docs/API_docs_v65/methods/messages_saveDraft.md
index 791ce234..ea6d407e 100644
--- a/old_docs/API_docs_v65/methods/messages_saveDraft.md
+++ b/old_docs/API_docs_v65/methods/messages_saveDraft.md
@@ -89,10 +89,10 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v65/methods/messages_saveGif.md b/old_docs/API_docs_v65/methods/messages_saveGif.md
index f504ff9e..010e17ec 100644
--- a/old_docs/API_docs_v65/methods/messages_saveGif.md
+++ b/old_docs/API_docs_v65/methods/messages_saveGif.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.saveGif({id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|GIF_ID_INVALID|The provided GIF ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|GIF_ID_INVALID|The provided GIF ID is invalid|
diff --git a/old_docs/API_docs_v65/methods/messages_saveRecentSticker.md b/old_docs/API_docs_v65/methods/messages_saveRecentSticker.md
index 98c74efd..072b6fe9 100644
--- a/old_docs/API_docs_v65/methods/messages_saveRecentSticker.md
+++ b/old_docs/API_docs_v65/methods/messages_saveRecentSticker.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.saveRecentSticker({attached=Bool, id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v65/methods/messages_search.md b/old_docs/API_docs_v65/methods/messages_search.md
index 5f5480cc..dc1b6934 100644
--- a/old_docs/API_docs_v65/methods/messages_search.md
+++ b/old_docs/API_docs_v65/methods/messages_search.md
@@ -49,16 +49,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({peer=InputPeer, q='string', filter=MessagesFilter, min_date=int, max_date=int, offset=int, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v65/methods/messages_searchGifs.md b/old_docs/API_docs_v65/methods/messages_searchGifs.md
index 7be4173b..1602d35e 100644
--- a/old_docs/API_docs_v65/methods/messages_searchGifs.md
+++ b/old_docs/API_docs_v65/methods/messages_searchGifs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_FoundGifs = messages.searchGifs({q='string', offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v65/methods/messages_searchGlobal.md b/old_docs/API_docs_v65/methods/messages_searchGlobal.md
index fb38398b..c8da163c 100644
--- a/old_docs/API_docs_v65/methods/messages_searchGlobal.md
+++ b/old_docs/API_docs_v65/methods/messages_searchGlobal.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
messages_Messages = messages.searchGlobal({q='string', offset_date=int, offset_peer=InputPeer, offset_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v65/methods/messages_sendEncrypted.md b/old_docs/API_docs_v65/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v65/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v65/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v65/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v65/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v65/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v65/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v65/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v65/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v65/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v65/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v65/methods/messages_sendInlineBotResult.md b/old_docs/API_docs_v65/methods/messages_sendInlineBotResult.md
index 9ffa02ae..a2b57f4d 100644
--- a/old_docs/API_docs_v65/methods/messages_sendInlineBotResult.md
+++ b/old_docs/API_docs_v65/methods/messages_sendInlineBotResult.md
@@ -48,15 +48,15 @@ Or, if you're into Lua:
Updates = messages.sendInlineBotResult({silent=Bool, background=Bool, clear_draft=Bool, peer=InputPeer, reply_to_msg_id=int, query_id=long, id='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INLINE_RESULT_EXPIRED|The inline query expired|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|QUERY_ID_EMPTY|The query ID is empty|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INLINE_RESULT_EXPIRED|The inline query expired|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|QUERY_ID_EMPTY|The query ID is empty|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v65/methods/messages_sendMedia.md b/old_docs/API_docs_v65/methods/messages_sendMedia.md
index 89dc5572..9bfd0743 100644
--- a/old_docs/API_docs_v65/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v65/methods/messages_sendMedia.md
@@ -54,31 +54,31 @@ Updates = messages.sendMedia({silent=Bool, background=Bool, clear_draft=Bool, pe
You can provide bot API reply_markup objects here.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v65/methods/messages_sendMessage.md b/old_docs/API_docs_v65/methods/messages_sendMessage.md
index 5641ebc3..e0ab305d 100644
--- a/old_docs/API_docs_v65/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v65/methods/messages_sendMessage.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v65/methods/messages_setBotCallbackAnswer.md b/old_docs/API_docs_v65/methods/messages_setBotCallbackAnswer.md
index ed058b4f..630ca61c 100644
--- a/old_docs/API_docs_v65/methods/messages_setBotCallbackAnswer.md
+++ b/old_docs/API_docs_v65/methods/messages_setBotCallbackAnswer.md
@@ -52,11 +52,11 @@ Bool = messages.setBotCallbackAnswer({alert=Bool, query_id=long, message='string
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|URL_INVALID|Invalid URL provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|URL_INVALID|Invalid URL provided|
diff --git a/old_docs/API_docs_v65/methods/messages_setBotPrecheckoutResults.md b/old_docs/API_docs_v65/methods/messages_setBotPrecheckoutResults.md
index cc615123..d6e0e61b 100644
--- a/old_docs/API_docs_v65/methods/messages_setBotPrecheckoutResults.md
+++ b/old_docs/API_docs_v65/methods/messages_setBotPrecheckoutResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotPrecheckoutResults({success=Bool, query_id=long, error='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ERROR_TEXT_EMPTY|The provided error message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ERROR_TEXT_EMPTY|The provided error message is empty|
diff --git a/old_docs/API_docs_v65/methods/messages_setBotShippingResults.md b/old_docs/API_docs_v65/methods/messages_setBotShippingResults.md
index f3a86f4f..adc4f64f 100644
--- a/old_docs/API_docs_v65/methods/messages_setBotShippingResults.md
+++ b/old_docs/API_docs_v65/methods/messages_setBotShippingResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotShippingResults({query_id=long, error='string', shipping_options={ShippingOption}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
diff --git a/old_docs/API_docs_v65/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v65/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v65/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v65/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v65/methods/messages_setGameScore.md b/old_docs/API_docs_v65/methods/messages_setGameScore.md
index 548ee889..429b04c6 100644
--- a/old_docs/API_docs_v65/methods/messages_setGameScore.md
+++ b/old_docs/API_docs_v65/methods/messages_setGameScore.md
@@ -47,12 +47,12 @@ Or, if you're into Lua:
Updates = messages.setGameScore({edit_message=Bool, force=Bool, peer=InputPeer, id=int, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v65/methods/messages_setInlineBotResults.md b/old_docs/API_docs_v65/methods/messages_setInlineBotResults.md
index ab388e39..df4c30d4 100644
--- a/old_docs/API_docs_v65/methods/messages_setInlineBotResults.md
+++ b/old_docs/API_docs_v65/methods/messages_setInlineBotResults.md
@@ -48,23 +48,23 @@ Or, if you're into Lua:
Bool = messages.setInlineBotResults({gallery=Bool, private=Bool, query_id=long, results={InputBotInlineResult}, cache_time=int, next_offset='string', switch_pm=InlineBotSwitchPM, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ARTICLE_TITLE_EMPTY|The title of the article is empty|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|PHOTO_INVALID|Photo invalid|
-|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
-|QUERY_ID_INVALID|The query ID is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|RESULT_TYPE_INVALID|Result type invalid|
-|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
-|START_PARAM_INVALID|Start parameter invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ARTICLE_TITLE_EMPTY|The title of the article is empty|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|PHOTO_INVALID|Photo invalid|
+|400|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|RESULT_TYPE_INVALID|Result type invalid|
+|400|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
+|400|START_PARAM_INVALID|Start parameter invalid|
+|403|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v65/methods/messages_setInlineGameScore.md b/old_docs/API_docs_v65/methods/messages_setInlineGameScore.md
index 5eeb1540..62b163d5 100644
--- a/old_docs/API_docs_v65/methods/messages_setInlineGameScore.md
+++ b/old_docs/API_docs_v65/methods/messages_setInlineGameScore.md
@@ -46,11 +46,11 @@ Or, if you're into Lua:
Bool = messages.setInlineGameScore({edit_message=Bool, force=Bool, id=InputBotInlineMessageID, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v65/methods/messages_setTyping.md b/old_docs/API_docs_v65/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v65/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v65/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v65/methods/messages_startBot.md b/old_docs/API_docs_v65/methods/messages_startBot.md
index aa2b2d00..4bf12aa6 100644
--- a/old_docs/API_docs_v65/methods/messages_startBot.md
+++ b/old_docs/API_docs_v65/methods/messages_startBot.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = messages.startBot({bot=InputUser, peer=InputPeer, start_param='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INVALID|This is not a valid bot|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|START_PARAM_EMPTY|The start parameter is empty|
-|START_PARAM_INVALID|Start parameter invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INVALID|This is not a valid bot|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|START_PARAM_EMPTY|The start parameter is empty|
+|400|START_PARAM_INVALID|Start parameter invalid|
diff --git a/old_docs/API_docs_v65/methods/messages_toggleChatAdmins.md b/old_docs/API_docs_v65/methods/messages_toggleChatAdmins.md
index 7851806d..8ea6e65e 100644
--- a/old_docs/API_docs_v65/methods/messages_toggleChatAdmins.md
+++ b/old_docs/API_docs_v65/methods/messages_toggleChatAdmins.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.toggleChatAdmins({chat_id=InputPeer, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v65/methods/messages_toggleDialogPin.md b/old_docs/API_docs_v65/methods/messages_toggleDialogPin.md
index 888f9a25..d44e4abc 100644
--- a/old_docs/API_docs_v65/methods/messages_toggleDialogPin.md
+++ b/old_docs/API_docs_v65/methods/messages_toggleDialogPin.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.toggleDialogPin({pinned=Bool, peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v65/methods/messages_uninstallStickerSet.md b/old_docs/API_docs_v65/methods/messages_uninstallStickerSet.md
index 59abc510..6b7a2006 100644
--- a/old_docs/API_docs_v65/methods/messages_uninstallStickerSet.md
+++ b/old_docs/API_docs_v65/methods/messages_uninstallStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.uninstallStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v65/methods/payments_getPaymentForm.md b/old_docs/API_docs_v65/methods/payments_getPaymentForm.md
index e8e04f37..4c28121f 100644
--- a/old_docs/API_docs_v65/methods/payments_getPaymentForm.md
+++ b/old_docs/API_docs_v65/methods/payments_getPaymentForm.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentForm = payments.getPaymentForm({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v65/methods/payments_getPaymentReceipt.md b/old_docs/API_docs_v65/methods/payments_getPaymentReceipt.md
index acb1c209..0e2f76a8 100644
--- a/old_docs/API_docs_v65/methods/payments_getPaymentReceipt.md
+++ b/old_docs/API_docs_v65/methods/payments_getPaymentReceipt.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentReceipt = payments.getPaymentReceipt({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v65/methods/payments_sendPaymentForm.md b/old_docs/API_docs_v65/methods/payments_sendPaymentForm.md
index b8fa905d..1910ede8 100644
--- a/old_docs/API_docs_v65/methods/payments_sendPaymentForm.md
+++ b/old_docs/API_docs_v65/methods/payments_sendPaymentForm.md
@@ -45,10 +45,10 @@ Or, if you're into Lua:
payments_PaymentResult = payments.sendPaymentForm({msg_id=int, requested_info_id='string', shipping_option_id='string', credentials=InputPaymentCredentials, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v65/methods/payments_validateRequestedInfo.md b/old_docs/API_docs_v65/methods/payments_validateRequestedInfo.md
index 3b9da7e6..f18e1660 100644
--- a/old_docs/API_docs_v65/methods/payments_validateRequestedInfo.md
+++ b/old_docs/API_docs_v65/methods/payments_validateRequestedInfo.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
payments_ValidatedRequestedInfo = payments.validateRequestedInfo({save=Bool, msg_id=int, info=PaymentRequestedInfo, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v65/methods/phone_acceptCall.md b/old_docs/API_docs_v65/methods/phone_acceptCall.md
index b75ac65b..f5c58f01 100644
--- a/old_docs/API_docs_v65/methods/phone_acceptCall.md
+++ b/old_docs/API_docs_v65/methods/phone_acceptCall.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->acceptCall(['peer' => InputPhoneCall, 'g_b' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.acceptCall({peer=InputPhoneCall, g_b='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
diff --git a/old_docs/API_docs_v65/methods/phone_confirmCall.md b/old_docs/API_docs_v65/methods/phone_confirmCall.md
index 1a75563d..468307cc 100644
--- a/old_docs/API_docs_v65/methods/phone_confirmCall.md
+++ b/old_docs/API_docs_v65/methods/phone_confirmCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->confirmCall(['peer' => InputPhoneCall, 'g_a' => 'bytes', 'key_fingerprint' => long, 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.confirmCall({peer=InputPhoneCall, g_a='bytes', key_fingerprint=long, protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v65/methods/phone_discardCall.md b/old_docs/API_docs_v65/methods/phone_discardCall.md
index e50456eb..ffaa18ea 100644
--- a/old_docs/API_docs_v65/methods/phone_discardCall.md
+++ b/old_docs/API_docs_v65/methods/phone_discardCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|duration|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|reason|[PhoneCallDiscardReason](../types/PhoneCallDiscardReason.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|connection\_id|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [Updates](../types/Updates.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Updates = $MadelineProto->phone->discardCall(['peer' => InputPhoneCall, 'duration' => int, 'reason' => PhoneCallDiscardReason, 'connection_id' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Updates = phone.discardCall({peer=InputPhoneCall, duration=int, reason=PhoneCallDiscardReason, connection_id=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v65/methods/phone_receivedCall.md b/old_docs/API_docs_v65/methods/phone_receivedCall.md
index c43bc8ac..6091424b 100644
--- a/old_docs/API_docs_v65/methods/phone_receivedCall.md
+++ b/old_docs/API_docs_v65/methods/phone_receivedCall.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Bool = phone.receivedCall({peer=InputPhoneCall, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_ALREADY_DECLINED|The call was already declined|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v65/methods/phone_requestCall.md b/old_docs/API_docs_v65/methods/phone_requestCall.md
index 9b8df564..c8e828f2 100644
--- a/old_docs/API_docs_v65/methods/phone_requestCall.md
+++ b/old_docs/API_docs_v65/methods/phone_requestCall.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Optional|
+|g\_a\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->requestCall(['user_id' => InputUser, 'g_a_hash' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.requestCall({user_id=InputUser, g_a_hash='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
+|400|PARTICIPANT_VERSION_OUTDATED|The other participant does not use an up to date telegram client with support for calls|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|403|USER_IS_BLOCKED|You were blocked by this user|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v65/methods/phone_saveCallDebug.md b/old_docs/API_docs_v65/methods/phone_saveCallDebug.md
index 8acbc353..1e793c05 100644
--- a/old_docs/API_docs_v65/methods/phone_saveCallDebug.md
+++ b/old_docs/API_docs_v65/methods/phone_saveCallDebug.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = phone.saveCallDebug({peer=InputPhoneCall, debug=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
-|DATA_JSON_INVALID|The provided JSON data is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|DATA_JSON_INVALID|The provided JSON data is invalid|
diff --git a/old_docs/API_docs_v65/methods/phone_setCallRating.md b/old_docs/API_docs_v65/methods/phone_setCallRating.md
index 9bc6bdd0..9daed209 100644
--- a/old_docs/API_docs_v65/methods/phone_setCallRating.md
+++ b/old_docs/API_docs_v65/methods/phone_setCallRating.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Updates = phone.setCallRating({peer=InputPhoneCall, rating=int, comment='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v65/methods/photos_getUserPhotos.md b/old_docs/API_docs_v65/methods/photos_getUserPhotos.md
index 57f5772b..a01f3180 100644
--- a/old_docs/API_docs_v65/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v65/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v65/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v65/methods/photos_updateProfilePhoto.md
index cca2fe30..f7c91ec6 100644
--- a/old_docs/API_docs_v65/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v65/methods/photos_updateProfilePhoto.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v65/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v65/methods/photos_uploadProfilePhoto.md
index 457bade8..badde2de 100644
--- a/old_docs/API_docs_v65/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v65/methods/photos_uploadProfilePhoto.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v65/methods/updates_getChannelDifference.md b/old_docs/API_docs_v65/methods/updates_getChannelDifference.md
index 6fa79529..9735c14a 100644
--- a/old_docs/API_docs_v65/methods/updates_getChannelDifference.md
+++ b/old_docs/API_docs_v65/methods/updates_getChannelDifference.md
@@ -7,8 +7,56 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|force|[Bool](../types/Bool.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|filter|[ChannelMessagesFilter](../types/ChannelMessagesFilter.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_ChannelDifference](../types/updates_ChannelDifference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_ChannelDifference = $MadelineProto->updates->getChannelDifference(['force' => Bool, 'channel' => InputChannel, 'filter' => ChannelMessagesFilter, 'pts' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_ChannelDifference = updates.getChannelDifference({force=Bool, channel=InputChannel, filter=ChannelMessagesFilter, pts=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|400|RANGES_INVALID|Invalid range provided|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v65/methods/updates_getDifference.md b/old_docs/API_docs_v65/methods/updates_getDifference.md
index 33e7d7f2..bcfac4e2 100644
--- a/old_docs/API_docs_v65/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v65/methods/updates_getDifference.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|pts\_total\_limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'pts_total_limit' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, pts_total_limit=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v65/methods/updates_getState.md b/old_docs/API_docs_v65/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v65/methods/updates_getState.md
+++ b/old_docs/API_docs_v65/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v65/methods/upload_getFile.md b/old_docs/API_docs_v65/methods/upload_getFile.md
index c72e6090..d8b433d6 100644
--- a/old_docs/API_docs_v65/methods/upload_getFile.md
+++ b/old_docs/API_docs_v65/methods/upload_getFile.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v65/methods/upload_getWebFile.md b/old_docs/API_docs_v65/methods/upload_getWebFile.md
index 21179a66..7b63f96c 100644
--- a/old_docs/API_docs_v65/methods/upload_getWebFile.md
+++ b/old_docs/API_docs_v65/methods/upload_getWebFile.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
upload_WebFile = upload.getWebFile({location=InputWebFileLocation, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LOCATION_INVALID|The provided location is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LOCATION_INVALID|The provided location is invalid|
diff --git a/old_docs/API_docs_v65/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v65/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v65/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v65/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v65/methods/upload_saveFilePart.md b/old_docs/API_docs_v65/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v65/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v65/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v65/methods/users_getFullUser.md b/old_docs/API_docs_v65/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v65/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v65/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v65/methods/users_getUsers.md b/old_docs/API_docs_v65/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v65/methods/users_getUsers.md
+++ b/old_docs/API_docs_v65/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v66/methods/README.md b/old_docs/API_docs_v66/methods/README.md
index 54602d55..a161eab6 100644
--- a/old_docs/API_docs_v66/methods/README.md
+++ b/old_docs/API_docs_v66/methods/README.md
@@ -30,391 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Add a sticker set: messages.installStickerSet
-
-* Add a sticker to recent stickers: messages.saveRecentSticker
-
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add phone number as contact: contacts.importContacts
-
-* Add users to channel/supergroup: channels.inviteToChannel
-
-* Allow or disallow any user to invite users to this channel/supergroup: channels.toggleInvites
-
-* Block a user: contacts.block
-
-* Bots only: send payment form: payments.sendPaymentForm
-
-* Bots only: set precheckout results: messages.setBotPrecheckoutResults
-
-* Bots only: set shipping results: messages.setBotShippingResults
-
-* Bots only: set the callback answer (after a button was clicked): messages.setBotCallbackAnswer
-
-* Bots only: set the results of an inline query: messages.setInlineBotResults
-
-* Call inline bot: messages.getInlineBotResults
-
-* Change notification settings: account.updateNotifySettings
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if about to edit a message or a media caption: messages.getMessageEditData
-
-* Check if an invitation link is valid: messages.checkChatInvite
-
-* Check if this phone number is registered on telegram: auth.checkPhone
-
-* Check if this username is available: account.checkUsername
-
-* Check if this username is free and can be assigned to a channel/supergroup: channels.checkUsername
-
-* Clear all recent stickers: messages.clearRecentStickers
-
-* Clear saved payments info: payments.clearSavedInfo
-
-* Confirm this phone number is associated to this account, obtain phone_code_hash from sendConfirmPhoneCode: account.confirmPhone
-
-* Convert chat to supergroup: messages.migrateChat
-
-* Create a chat (not supergroup): messages.createChat
-
-* Create channel/supergroup: channels.createChannel
-
-* Delete a certain session: account.resetAuthorization
-
-* Delete a channel/supergroup: channels.deleteChannel
-
-* Delete a contact: contacts.deleteContact
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete all messages of a user in a channel/supergroup: channels.deleteUserHistory
-
-* Delete all temporary authorization keys except the ones provided: auth.dropTempAuthKeys
-
-* Delete channel/supergroup messages: channels.deleteMessages
-
-* Delete chat history: messages.deleteHistory
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete this account: account.deleteAccount
-
-* Destroy current authorization key: destroy_auth_key
-
-* Destroy the current MTProto session: destroy_session
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Do not send answer to provided request: rpc_drop_answer
-
-* Download a file through telegram: upload.getWebFile
-
-* Edit a message: messages.editMessage
-
-* Edit a sent inline message: messages.editInlineBotMessage
-
-* Edit admin permissions of a user in a channel/supergroup: channels.editAdmin
-
-* Edit admin permissions: messages.editChatAdmin
-
-* Edit the about text of a channel/supergroup: channels.editAbout
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the photo of a supergroup/channel: channels.editPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Edit the title of a supergroup/channel: channels.editTitle
-
-* Enable all users are admins in normal groups (not supergroups): messages.toggleChatAdmins
-
-* Export chat invite : messages.exportChatInvite
-
-* Export contact as card: contacts.exportCard
-
-* Export the invite link of a channel: channels.exportInvite
-
-* Forward message: messages.forwardMessage
-
-* Forward messages: messages.forwardMessages
-
-* Get CDN configuration: help.getCdnConfig
-
-* Get a stickerset: messages.getStickerSet
-
-* Get account TTL: account.getAccountTTL
-
-* Get all archived stickers: messages.getArchivedStickers
-
-* Get all chats (not supergroups or channels): messages.getAllChats
-
-* Get all contacts: contacts.getContacts
-
-* Get all logged-in authorizations: account.getAuthorizations
-
-* Get all message drafts: messages.getAllDrafts
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get all supergroups/channels where you're admin: channels.getAdminedPublicChannels
-
-* Get and increase message views: messages.getMessagesViews
-
-* Get blocked users: contacts.getBlocked
-
-* Get call configuration: phone.getCallConfig
-
-* Get channel/supergroup messages: channels.getMessages
-
-* Get channel/supergroup participants (you should use `$MadelineProto->get_pwr_chat($id)` instead): channels.getParticipants
-
-* Get chats in common with a user: messages.getCommonChats
-
-* Get dialog info of peers: messages.getPeerDialogs
-
-* Get document by SHA256 hash: messages.getDocumentByHash
-
-* Get featured stickers: messages.getFeaturedStickers
-
-* Get future salts: get_future_salts
-
-* Get high scores of a game sent in an inline message: messages.getInlineGameHighScores
-
-* Get high scores of a game: messages.getGameHighScores
-
-* Get info about a certain channel/supergroup participant: channels.getParticipant
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about multiple channels/supergroups: channels.getChannels
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get invitation text: help.getInviteText
-
-* Get masks: messages.getMaskStickers
-
-* Get messages: messages.getMessages
-
-* Get most used chats: contacts.getTopPeers
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get payment form: payments.getPaymentForm
-
-* Get payment receipt: payments.getPaymentReceipt
-
-* Get pinned dialogs: messages.getPinnedDialogs
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get recent stickers: messages.getRecentStickers
-
-* Get saved gifs: messages.getSavedGifs
-
-* Get saved payments info: payments.getSavedInfo
-
-* Get server configuration: help.getConfig
-
-* Get stickers attachable to images: messages.getAttachedStickers
-
-* Get temporary password for buying products through bots: account.getTmpPassword
-
-* Get terms of service: help.getTermsOfService
-
-* Get the callback answer of a bot (after clicking a button): messages.getBotCallbackAnswer
-
-* Get the changelog of this app: help.getAppChangelog
-
-* Get the current password: account.getPassword
-
-* Get the link of a message in a channel: channels.exportMessageLink
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Get the settings of apeer: messages.getPeerSettings
-
-* Get webpage preview: messages.getWebPage
-
-* Get webpage preview: messages.getWebPagePreview
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Global message search: messages.searchGlobal
-
-* Hide report spam popup: messages.hideReportSpam
-
-* Import card as contact: contacts.importCard
-
-* Import chat invite: messages.importChatInvite
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Invalidate sent phone code: auth.cancelCode
-
-* Invite friends to telegram!: auth.sendInvites
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invoke with method without returning updates in the socket: invokeWithoutUpdates
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Join a channel/supergroup: channels.joinChannel
-
-* Kick user from channel: channels.kickFromChannel
-
-* Leave a channel/supergroup: channels.leaveChannel
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark channel/supergroup history as read: channels.readHistory
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Mark new featured stickers as read: messages.readFeaturedStickers
-
-* Notify server that you received a call (server will refuse all incoming calls until the current call is over): phone.receivedCall
-
-* Pin or unpin dialog: messages.toggleDialogPin
-
-* Pings the server and causes disconection if the same method is not called within ping_disconnect_delay: ping_delay_disconnect
-
-* Pings the server: ping
-
-* Register device for push notifications: account.registerDevice
-
-* Remove a sticker set: messages.uninstallStickerSet
-
-* Reorder pinned dialogs: messages.reorderPinnedDialogs
-
-* Reorder sticker sets: messages.reorderStickerSets
-
-* Report a message in a supergroup/channel for spam: channels.reportSpam
-
-* Report a peer for spam: messages.reportSpam
-
-* Report for spam a secret chat: messages.reportEncryptedSpam
-
-* Report for spam: account.reportPeer
-
-* Requests Diffie-hellman parameters for key exchange: req_DH_params
-
-* Requests PQ for factorization: req_pq
-
-* Resend the SMS verification code: auth.resendCode
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Reset top peer rating for a certain category/peer: contacts.resetTopPeerRating
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Save a GIF: messages.saveGif
-
-* Save a message draft: messages.saveDraft
-
-* Save call debugging info: phone.saveCallDebug
-
-* Save developer info for telegram contest: contest.saveDeveloperInfo
-
-* Search contacts: contacts.search
-
-* Search gifs: messages.searchGifs
-
-* Search peers or messages: messages.search
-
-* Send a custom request to the bot API: bots.sendCustomRequest
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send an email to recover the 2FA password: auth.requestPasswordRecovery
-
-* Send confirmation phone code: account.sendConfirmPhoneCode
-
-* Send inline bot result obtained with messages.getInlineBotResults to the chat: messages.sendInlineBotResult
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Send webhook request via bot API: bots.answerWebhookJSONQuery
-
-* Set account TTL: account.setAccountTTL
-
-* Set phone call rating: phone.setCallRating
-
-* Set privacy settings: account.setPrivacy
-
-* Set the game score of an inline message: messages.setInlineGameScore
-
-* Set the game score: messages.setGameScore
-
-* Set the pinned message of a channel/supergroup: channels.updatePinnedMessage
-
-* Set the update status of webhook: help.setBotUpdatesStatus
-
-* Sets client diffie-hellman parameters: set_client_DH_params
-
-* Start a bot: messages.startBot
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Toggle channel signatures: channels.toggleSignatures
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update profile info: account.updateProfile
-
-* Update the username of a supergroup/channel: channels.updateUsername
-
-* Update this user's username: account.updateUsername
-
-* Upload profile photo: photos.uploadProfilePhoto
-
-* Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
-
-* Validate requested payment info: payments.validateRequestedInfo
-
diff --git a/old_docs/API_docs_v66/methods/account_changePhone.md b/old_docs/API_docs_v66/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/old_docs/API_docs_v66/methods/account_changePhone.md
+++ b/old_docs/API_docs_v66/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v66/methods/account_checkUsername.md b/old_docs/API_docs_v66/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v66/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v66/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v66/methods/account_confirmPhone.md b/old_docs/API_docs_v66/methods/account_confirmPhone.md
index b730c2dc..c114cd20 100644
--- a/old_docs/API_docs_v66/methods/account_confirmPhone.md
+++ b/old_docs/API_docs_v66/methods/account_confirmPhone.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = account.confirmPhone({phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_HASH_INVALID|Code hash invalid|
-|PHONE_CODE_EMPTY|phone_code is missing|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_HASH_INVALID|Code hash invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
diff --git a/old_docs/API_docs_v66/methods/account_getNotifySettings.md b/old_docs/API_docs_v66/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v66/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v66/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v66/methods/account_getPasswordSettings.md b/old_docs/API_docs_v66/methods/account_getPasswordSettings.md
index 8ebb78ee..8f878365 100644
--- a/old_docs/API_docs_v66/methods/account_getPasswordSettings.md
+++ b/old_docs/API_docs_v66/methods/account_getPasswordSettings.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+Get the current 2FA settings
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+### Return type: [account\_PasswordSettings](../types/account_PasswordSettings.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$account_PasswordSettings = $MadelineProto->account->getPasswordSettings(['current_password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+account_PasswordSettings = account.getPasswordSettings({current_password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v66/methods/account_getPrivacy.md b/old_docs/API_docs_v66/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/old_docs/API_docs_v66/methods/account_getPrivacy.md
+++ b/old_docs/API_docs_v66/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v66/methods/account_getTmpPassword.md b/old_docs/API_docs_v66/methods/account_getTmpPassword.md
index fd8314ee..a74d0f5a 100644
--- a/old_docs/API_docs_v66/methods/account_getTmpPassword.md
+++ b/old_docs/API_docs_v66/methods/account_getTmpPassword.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
account_TmpPassword = account.getTmpPassword({password_hash='bytes', period=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_HASH_INVALID|The provided password hash is invalid|
-|TMP_PASSWORD_DISABLED|The temporary password is disabled|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
+|400|TMP_PASSWORD_DISABLED|The temporary password is disabled|
diff --git a/old_docs/API_docs_v66/methods/account_registerDevice.md b/old_docs/API_docs_v66/methods/account_registerDevice.md
index cf16c2a2..82a6cad9 100644
--- a/old_docs/API_docs_v66/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v66/methods/account_registerDevice.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({token_type=int, token='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v66/methods/account_reportPeer.md b/old_docs/API_docs_v66/methods/account_reportPeer.md
index a203c900..87b080eb 100644
--- a/old_docs/API_docs_v66/methods/account_reportPeer.md
+++ b/old_docs/API_docs_v66/methods/account_reportPeer.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.reportPeer({peer=InputPeer, reason=ReportReason, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v66/methods/account_resetAuthorization.md b/old_docs/API_docs_v66/methods/account_resetAuthorization.md
index c950992c..e8e8ecc4 100644
--- a/old_docs/API_docs_v66/methods/account_resetAuthorization.md
+++ b/old_docs/API_docs_v66/methods/account_resetAuthorization.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.resetAuthorization({hash=long, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v66/methods/account_sendChangePhoneCode.md b/old_docs/API_docs_v66/methods/account_sendChangePhoneCode.md
index d5be60ef..08e5e86e 100644
--- a/old_docs/API_docs_v66/methods/account_sendChangePhoneCode.md
+++ b/old_docs/API_docs_v66/methods/account_sendChangePhoneCode.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendChangePhoneCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v66/methods/account_sendConfirmPhoneCode.md b/old_docs/API_docs_v66/methods/account_sendConfirmPhoneCode.md
index 028a1fdc..9fa7b57e 100644
--- a/old_docs/API_docs_v66/methods/account_sendConfirmPhoneCode.md
+++ b/old_docs/API_docs_v66/methods/account_sendConfirmPhoneCode.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendConfirmPhoneCode({allow_flashcall=Bool, hash='string', current_number=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v66/methods/account_setAccountTTL.md b/old_docs/API_docs_v66/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/old_docs/API_docs_v66/methods/account_setAccountTTL.md
+++ b/old_docs/API_docs_v66/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/old_docs/API_docs_v66/methods/account_setPrivacy.md b/old_docs/API_docs_v66/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/old_docs/API_docs_v66/methods/account_setPrivacy.md
+++ b/old_docs/API_docs_v66/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v66/methods/account_unregisterDevice.md b/old_docs/API_docs_v66/methods/account_unregisterDevice.md
index 589f48b0..a184da43 100644
--- a/old_docs/API_docs_v66/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v66/methods/account_unregisterDevice.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v66/methods/account_updateNotifySettings.md b/old_docs/API_docs_v66/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v66/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v66/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v66/methods/account_updatePasswordSettings.md b/old_docs/API_docs_v66/methods/account_updatePasswordSettings.md
index 80f27228..68e5da6d 100644
--- a/old_docs/API_docs_v66/methods/account_updatePasswordSettings.md
+++ b/old_docs/API_docs_v66/methods/account_updatePasswordSettings.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+|new\_settings|[account\_PasswordInputSettings](../types/account_PasswordInputSettings.md) | New 2FA settings | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->account->updatePasswordSettings(['current_password_hash' => 'bytes', 'new_settings' => account_PasswordInputSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = account.updatePasswordSettings({current_password_hash='bytes', new_settings=account_PasswordInputSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EMAIL_UNCONFIRMED|Email unconfirmed|
+|400|EMAIL_UNCONFIRMED_X|The provided email isn't confirmed, X is the length of the verification code that was just sent to the email.|
+|400|NEW_SALT_INVALID|The new salt is invalid|
+|400|NEW_SETTINGS_INVALID|The new settings are invalid|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v66/methods/account_updateProfile.md b/old_docs/API_docs_v66/methods/account_updateProfile.md
index af5b6a0f..0d74c5e5 100644
--- a/old_docs/API_docs_v66/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v66/methods/account_updateProfile.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v66/methods/account_updateStatus.md b/old_docs/API_docs_v66/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v66/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v66/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v66/methods/account_updateUsername.md b/old_docs/API_docs_v66/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v66/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v66/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v66/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v66/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v66/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v66/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v66/methods/auth_cancelCode.md b/old_docs/API_docs_v66/methods/auth_cancelCode.md
index fcbd7713..a69e0118 100644
--- a/old_docs/API_docs_v66/methods/auth_cancelCode.md
+++ b/old_docs/API_docs_v66/methods/auth_cancelCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = auth.cancelCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v66/methods/auth_checkPassword.md b/old_docs/API_docs_v66/methods/auth_checkPassword.md
index 8d76c483..db65cb56 100644
--- a/old_docs/API_docs_v66/methods/auth_checkPassword.md
+++ b/old_docs/API_docs_v66/methods/auth_checkPassword.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->checkPassword(['password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.checkPassword({password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v66/methods/auth_checkPhone.md b/old_docs/API_docs_v66/methods/auth_checkPhone.md
index f3e32365..e974ce7f 100644
--- a/old_docs/API_docs_v66/methods/auth_checkPhone.md
+++ b/old_docs/API_docs_v66/methods/auth_checkPhone.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
auth_CheckedPhone = auth.checkPhone({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v66/methods/auth_exportAuthorization.md b/old_docs/API_docs_v66/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v66/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v66/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v66/methods/auth_importAuthorization.md b/old_docs/API_docs_v66/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v66/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v66/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v66/methods/auth_importBotAuthorization.md b/old_docs/API_docs_v66/methods/auth_importBotAuthorization.md
index 1a98c1b9..98a2f8ca 100644
--- a/old_docs/API_docs_v66/methods/auth_importBotAuthorization.md
+++ b/old_docs/API_docs_v66/methods/auth_importBotAuthorization.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|api\_id|[int](../types/int.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_hash|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|bot\_auth\_token|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importBotAuthorization(['api_id' => int, 'api_hash' => 'string', 'bot_auth_token' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importBotAuthorization({api_id=int, api_hash='string', bot_auth_token='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ACCESS_TOKEN_EXPIRED|Access token expired|
+|400|ACCESS_TOKEN_INVALID|Access token invalid|
+|400|API_ID_INVALID|API ID invalid|
diff --git a/old_docs/API_docs_v66/methods/auth_logOut.md b/old_docs/API_docs_v66/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v66/methods/auth_logOut.md
+++ b/old_docs/API_docs_v66/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v66/methods/auth_recoverPassword.md b/old_docs/API_docs_v66/methods/auth_recoverPassword.md
index 83ff5aed..d4bad9c5 100644
--- a/old_docs/API_docs_v66/methods/auth_recoverPassword.md
+++ b/old_docs/API_docs_v66/methods/auth_recoverPassword.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
auth_Authorization = auth.recoverPassword({code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_EMPTY|The provided code is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_EMPTY|The provided code is empty|
diff --git a/old_docs/API_docs_v66/methods/auth_requestPasswordRecovery.md b/old_docs/API_docs_v66/methods/auth_requestPasswordRecovery.md
index 1864bbb0..b6ad57ba 100644
--- a/old_docs/API_docs_v66/methods/auth_requestPasswordRecovery.md
+++ b/old_docs/API_docs_v66/methods/auth_requestPasswordRecovery.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
auth_PasswordRecovery = auth.requestPasswordRecovery({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_EMPTY|The provided password is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_EMPTY|The provided password is empty|
diff --git a/old_docs/API_docs_v66/methods/auth_resendCode.md b/old_docs/API_docs_v66/methods/auth_resendCode.md
index ff7868ea..ec730d75 100644
--- a/old_docs/API_docs_v66/methods/auth_resendCode.md
+++ b/old_docs/API_docs_v66/methods/auth_resendCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = auth.resendCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v66/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v66/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v66/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v66/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v66/methods/auth_sendCode.md b/old_docs/API_docs_v66/methods/auth_sendCode.md
index 9afebb55..1e9d1a4e 100644
--- a/old_docs/API_docs_v66/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v66/methods/auth_sendCode.md
@@ -7,8 +7,59 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|allow\_flashcall|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|current\_number|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['allow_flashcall' => Bool, 'phone_number' => 'string', 'current_number' => Bool, 'api_id' => int, 'api_hash' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, api_id=int, api_hash='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v66/methods/auth_sendInvites.md b/old_docs/API_docs_v66/methods/auth_sendInvites.md
index e10c1109..4c11023e 100644
--- a/old_docs/API_docs_v66/methods/auth_sendInvites.md
+++ b/old_docs/API_docs_v66/methods/auth_sendInvites.md
@@ -49,10 +49,10 @@ Bool = auth.sendInvites({phone_numbers={'string'}, message='string', })
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_EMPTY|The provided message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_EMPTY|The provided message is empty|
diff --git a/old_docs/API_docs_v66/methods/auth_signIn.md b/old_docs/API_docs_v66/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v66/methods/auth_signIn.md
+++ b/old_docs/API_docs_v66/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v66/methods/auth_signUp.md b/old_docs/API_docs_v66/methods/auth_signUp.md
index 15960145..31154486 100644
--- a/old_docs/API_docs_v66/methods/auth_signUp.md
+++ b/old_docs/API_docs_v66/methods/auth_signUp.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', phone_code='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v66/methods/bots_answerWebhookJSONQuery.md b/old_docs/API_docs_v66/methods/bots_answerWebhookJSONQuery.md
index ae0fa6d9..f2233514 100644
--- a/old_docs/API_docs_v66/methods/bots_answerWebhookJSONQuery.md
+++ b/old_docs/API_docs_v66/methods/bots_answerWebhookJSONQuery.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = bots.answerWebhookJSONQuery({query_id=long, data=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v66/methods/bots_sendCustomRequest.md b/old_docs/API_docs_v66/methods/bots_sendCustomRequest.md
index c1fd8183..8a6a2df5 100644
--- a/old_docs/API_docs_v66/methods/bots_sendCustomRequest.md
+++ b/old_docs/API_docs_v66/methods/bots_sendCustomRequest.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
DataJSON = bots.sendCustomRequest({custom_method='string', params=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v66/methods/channels_checkUsername.md b/old_docs/API_docs_v66/methods/channels_checkUsername.md
index 483a2f6f..52365d34 100644
--- a/old_docs/API_docs_v66/methods/channels_checkUsername.md
+++ b/old_docs/API_docs_v66/methods/channels_checkUsername.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Bool = channels.checkUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v66/methods/channels_createChannel.md b/old_docs/API_docs_v66/methods/channels_createChannel.md
index b924e6a6..ecaee0ef 100644
--- a/old_docs/API_docs_v66/methods/channels_createChannel.md
+++ b/old_docs/API_docs_v66/methods/channels_createChannel.md
@@ -45,12 +45,12 @@ Or, if you're into Lua:
Updates = channels.createChannel({broadcast=Bool, megagroup=Bool, title='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_TITLE_EMPTY|No chat title provided|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
+|406|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v66/methods/channels_deleteChannel.md b/old_docs/API_docs_v66/methods/channels_deleteChannel.md
index 53a9c23d..1b8d2d48 100644
--- a/old_docs/API_docs_v66/methods/channels_deleteChannel.md
+++ b/old_docs/API_docs_v66/methods/channels_deleteChannel.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Updates = channels.deleteChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v66/methods/channels_deleteMessages.md b/old_docs/API_docs_v66/methods/channels_deleteMessages.md
index f76a9ad1..463ebad0 100644
--- a/old_docs/API_docs_v66/methods/channels_deleteMessages.md
+++ b/old_docs/API_docs_v66/methods/channels_deleteMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_AffectedMessages = channels.deleteMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v66/methods/channels_deleteUserHistory.md b/old_docs/API_docs_v66/methods/channels_deleteUserHistory.md
index 0a4e7d82..33905a7e 100644
--- a/old_docs/API_docs_v66/methods/channels_deleteUserHistory.md
+++ b/old_docs/API_docs_v66/methods/channels_deleteUserHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedHistory = channels.deleteUserHistory({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v66/methods/channels_editAbout.md b/old_docs/API_docs_v66/methods/channels_editAbout.md
index 47111668..d5e090e0 100644
--- a/old_docs/API_docs_v66/methods/channels_editAbout.md
+++ b/old_docs/API_docs_v66/methods/channels_editAbout.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Bool = channels.editAbout({channel=InputChannel, about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
-|CHAT_ABOUT_TOO_LONG|Chat about too long|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
+|400|CHAT_ABOUT_TOO_LONG|Chat about too long|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v66/methods/channels_editAdmin.md b/old_docs/API_docs_v66/methods/channels_editAdmin.md
index 3fbaf64d..229318fb 100644
--- a/old_docs/API_docs_v66/methods/channels_editAdmin.md
+++ b/old_docs/API_docs_v66/methods/channels_editAdmin.md
@@ -44,19 +44,19 @@ Or, if you're into Lua:
Updates = channels.editAdmin({channel=InputChannel, user_id=InputUser, role=ChannelParticipantRole, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ADMINS_TOO_MUCH|There are too many admins|
-|BOT_CHANNELS_NA|Bots can't edit admin privileges|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
-|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ADMINS_TOO_MUCH|There are too many admins|
+|400|BOT_CHANNELS_NA|Bots can't edit admin privileges|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
+|403|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v66/methods/channels_editPhoto.md b/old_docs/API_docs_v66/methods/channels_editPhoto.md
index bec0ba48..caef32d5 100644
--- a/old_docs/API_docs_v66/methods/channels_editPhoto.md
+++ b/old_docs/API_docs_v66/methods/channels_editPhoto.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editPhoto({channel=InputChannel, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|PHOTO_INVALID|Photo invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|PHOTO_INVALID|Photo invalid|
diff --git a/old_docs/API_docs_v66/methods/channels_editTitle.md b/old_docs/API_docs_v66/methods/channels_editTitle.md
index b5efeb39..d7cb33da 100644
--- a/old_docs/API_docs_v66/methods/channels_editTitle.md
+++ b/old_docs/API_docs_v66/methods/channels_editTitle.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editTitle({channel=InputChannel, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v66/methods/channels_exportInvite.md b/old_docs/API_docs_v66/methods/channels_exportInvite.md
index 0918b3e7..9d578deb 100644
--- a/old_docs/API_docs_v66/methods/channels_exportInvite.md
+++ b/old_docs/API_docs_v66/methods/channels_exportInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ExportedChatInvite = channels.exportInvite({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INVITE_HASH_EXPIRED|The invite link has expired|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
diff --git a/old_docs/API_docs_v66/methods/channels_exportMessageLink.md b/old_docs/API_docs_v66/methods/channels_exportMessageLink.md
index 66cd7584..2e92ee5e 100644
--- a/old_docs/API_docs_v66/methods/channels_exportMessageLink.md
+++ b/old_docs/API_docs_v66/methods/channels_exportMessageLink.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
ExportedMessageLink = channels.exportMessageLink({channel=InputChannel, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v66/methods/channels_getChannels.md b/old_docs/API_docs_v66/methods/channels_getChannels.md
index 78d50641..95d7a188 100644
--- a/old_docs/API_docs_v66/methods/channels_getChannels.md
+++ b/old_docs/API_docs_v66/methods/channels_getChannels.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = channels.getChannels({id={InputChannel}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v66/methods/channels_getFullChannel.md b/old_docs/API_docs_v66/methods/channels_getFullChannel.md
index 45a8ec72..ebd53de4 100644
--- a/old_docs/API_docs_v66/methods/channels_getFullChannel.md
+++ b/old_docs/API_docs_v66/methods/channels_getFullChannel.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->channels->getFullChannel(['channel' => InputChannel, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = channels.getFullChannel({channel=InputChannel, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v66/methods/channels_getMessages.md b/old_docs/API_docs_v66/methods/channels_getMessages.md
index aa85d640..57bcc60f 100644
--- a/old_docs/API_docs_v66/methods/channels_getMessages.md
+++ b/old_docs/API_docs_v66/methods/channels_getMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_Messages = channels.getMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
diff --git a/old_docs/API_docs_v66/methods/channels_getParticipant.md b/old_docs/API_docs_v66/methods/channels_getParticipant.md
index 6633114f..808156fd 100644
--- a/old_docs/API_docs_v66/methods/channels_getParticipant.md
+++ b/old_docs/API_docs_v66/methods/channels_getParticipant.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
channels_ChannelParticipant = channels.getParticipant({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v66/methods/channels_getParticipants.md b/old_docs/API_docs_v66/methods/channels_getParticipants.md
index d4bd8779..21d4a418 100644
--- a/old_docs/API_docs_v66/methods/channels_getParticipants.md
+++ b/old_docs/API_docs_v66/methods/channels_getParticipants.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, filter=ChannelParticipantsFilter, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v66/methods/channels_inviteToChannel.md b/old_docs/API_docs_v66/methods/channels_inviteToChannel.md
index f7093f13..d8c5e88a 100644
--- a/old_docs/API_docs_v66/methods/channels_inviteToChannel.md
+++ b/old_docs/API_docs_v66/methods/channels_inviteToChannel.md
@@ -43,25 +43,25 @@ Or, if you're into Lua:
Updates = channels.inviteToChannel({channel=InputChannel, users={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
-|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_BLOCKED|User blocked|
-|USER_BOT|Bots can only be admins in channels.|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_KICKED|This user was kicked from this supergroup/channel|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
+|400|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_BLOCKED|User blocked|
+|400|USER_BOT|Bots can only be admins in channels.|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_KICKED|This user was kicked from this supergroup/channel|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v66/methods/channels_joinChannel.md b/old_docs/API_docs_v66/methods/channels_joinChannel.md
index b056031a..a4a7c177 100644
--- a/old_docs/API_docs_v66/methods/channels_joinChannel.md
+++ b/old_docs/API_docs_v66/methods/channels_joinChannel.md
@@ -42,15 +42,15 @@ Or, if you're into Lua:
Updates = channels.joinChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
diff --git a/old_docs/API_docs_v66/methods/channels_leaveChannel.md b/old_docs/API_docs_v66/methods/channels_leaveChannel.md
index fdea13ba..6538d443 100644
--- a/old_docs/API_docs_v66/methods/channels_leaveChannel.md
+++ b/old_docs/API_docs_v66/methods/channels_leaveChannel.md
@@ -42,14 +42,14 @@ Or, if you're into Lua:
Updates = channels.leaveChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
-|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
diff --git a/old_docs/API_docs_v66/methods/channels_readHistory.md b/old_docs/API_docs_v66/methods/channels_readHistory.md
index 93dc075f..3532dae0 100644
--- a/old_docs/API_docs_v66/methods/channels_readHistory.md
+++ b/old_docs/API_docs_v66/methods/channels_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readHistory({channel=InputChannel, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v66/methods/channels_reportSpam.md b/old_docs/API_docs_v66/methods/channels_reportSpam.md
index db80676a..7e273cc5 100644
--- a/old_docs/API_docs_v66/methods/channels_reportSpam.md
+++ b/old_docs/API_docs_v66/methods/channels_reportSpam.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
Bool = channels.reportSpam({channel=InputChannel, user_id=InputUser, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
diff --git a/old_docs/API_docs_v66/methods/channels_toggleInvites.md b/old_docs/API_docs_v66/methods/channels_toggleInvites.md
index e5d3fba1..6266d30b 100644
--- a/old_docs/API_docs_v66/methods/channels_toggleInvites.md
+++ b/old_docs/API_docs_v66/methods/channels_toggleInvites.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.toggleInvites({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v66/methods/channels_toggleSignatures.md b/old_docs/API_docs_v66/methods/channels_toggleSignatures.md
index cdfc0fda..f8624946 100644
--- a/old_docs/API_docs_v66/methods/channels_toggleSignatures.md
+++ b/old_docs/API_docs_v66/methods/channels_toggleSignatures.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = channels.toggleSignatures({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v66/methods/channels_updatePinnedMessage.md b/old_docs/API_docs_v66/methods/channels_updatePinnedMessage.md
index 53733a22..37d7c3c0 100644
--- a/old_docs/API_docs_v66/methods/channels_updatePinnedMessage.md
+++ b/old_docs/API_docs_v66/methods/channels_updatePinnedMessage.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = channels.updatePinnedMessage({silent=Bool, channel=InputChannel, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v66/methods/channels_updateUsername.md b/old_docs/API_docs_v66/methods/channels_updateUsername.md
index 677712f9..48d250e6 100644
--- a/old_docs/API_docs_v66/methods/channels_updateUsername.md
+++ b/old_docs/API_docs_v66/methods/channels_updateUsername.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Bool = channels.updateUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_OCCUPIED|The provided username is already occupied|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
diff --git a/old_docs/API_docs_v66/methods/contacts_block.md b/old_docs/API_docs_v66/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v66/methods/contacts_block.md
+++ b/old_docs/API_docs_v66/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v66/methods/contacts_deleteContact.md b/old_docs/API_docs_v66/methods/contacts_deleteContact.md
index ba9569e4..a9321d64 100644
--- a/old_docs/API_docs_v66/methods/contacts_deleteContact.md
+++ b/old_docs/API_docs_v66/methods/contacts_deleteContact.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
contacts_Link = contacts.deleteContact({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v66/methods/contacts_deleteContacts.md b/old_docs/API_docs_v66/methods/contacts_deleteContacts.md
index bfc91fdd..3c8e90f0 100644
--- a/old_docs/API_docs_v66/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v66/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v66/methods/contacts_getStatuses.md b/old_docs/API_docs_v66/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v66/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v66/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v66/methods/contacts_getTopPeers.md b/old_docs/API_docs_v66/methods/contacts_getTopPeers.md
index 0552f184..1aba4f85 100644
--- a/old_docs/API_docs_v66/methods/contacts_getTopPeers.md
+++ b/old_docs/API_docs_v66/methods/contacts_getTopPeers.md
@@ -49,10 +49,10 @@ Or, if you're into Lua:
contacts_TopPeers = contacts.getTopPeers({correspondents=Bool, bots_pm=Bool, bots_inline=Bool, groups=Bool, channels=Bool, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TYPES_EMPTY|No top peer type was provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TYPES_EMPTY|No top peer type was provided|
diff --git a/old_docs/API_docs_v66/methods/contacts_importCard.md b/old_docs/API_docs_v66/methods/contacts_importCard.md
index 15addde1..ed3d17fe 100644
--- a/old_docs/API_docs_v66/methods/contacts_importCard.md
+++ b/old_docs/API_docs_v66/methods/contacts_importCard.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
User = contacts.importCard({export_card={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|EXPORT_CARD_INVALID|Provided card is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EXPORT_CARD_INVALID|Provided card is invalid|
diff --git a/old_docs/API_docs_v66/methods/contacts_resetTopPeerRating.md b/old_docs/API_docs_v66/methods/contacts_resetTopPeerRating.md
index 43cf1685..787be177 100644
--- a/old_docs/API_docs_v66/methods/contacts_resetTopPeerRating.md
+++ b/old_docs/API_docs_v66/methods/contacts_resetTopPeerRating.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = contacts.resetTopPeerRating({category=TopPeerCategory, peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v66/methods/contacts_resolveUsername.md b/old_docs/API_docs_v66/methods/contacts_resolveUsername.md
index fab56bb1..68f709db 100644
--- a/old_docs/API_docs_v66/methods/contacts_resolveUsername.md
+++ b/old_docs/API_docs_v66/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [contacts\_ResolvedPeer](../types/contacts_ResolvedPeer.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$contacts_ResolvedPeer = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+contacts_ResolvedPeer = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v66/methods/contacts_search.md b/old_docs/API_docs_v66/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v66/methods/contacts_search.md
+++ b/old_docs/API_docs_v66/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v66/methods/contacts_unblock.md b/old_docs/API_docs_v66/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v66/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v66/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v66/methods/help_getCdnConfig.md b/old_docs/API_docs_v66/methods/help_getCdnConfig.md
index 9e047a1d..ba526365 100644
--- a/old_docs/API_docs_v66/methods/help_getCdnConfig.md
+++ b/old_docs/API_docs_v66/methods/help_getCdnConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
CdnConfig = help.getCdnConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v66/methods/help_getConfig.md b/old_docs/API_docs_v66/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v66/methods/help_getConfig.md
+++ b/old_docs/API_docs_v66/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v66/methods/initConnection.md b/old_docs/API_docs_v66/methods/initConnection.md
index 659f4e6b..a41f0c4d 100644
--- a/old_docs/API_docs_v66/methods/initConnection.md
+++ b/old_docs/API_docs_v66/methods/initConnection.md
@@ -47,11 +47,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', lang_code='string', query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v66/methods/invokeWithLayer.md b/old_docs/API_docs_v66/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/old_docs/API_docs_v66/methods/invokeWithLayer.md
+++ b/old_docs/API_docs_v66/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v66/methods/messages_acceptEncryption.md b/old_docs/API_docs_v66/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v66/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v66/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v66/methods/messages_addChatUser.md b/old_docs/API_docs_v66/methods/messages_addChatUser.md
index bc0d6253..b5e164b2 100644
--- a/old_docs/API_docs_v66/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v66/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
Updates = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v66/methods/messages_checkChatInvite.md b/old_docs/API_docs_v66/methods/messages_checkChatInvite.md
index de28b09b..0d13d55e 100644
--- a/old_docs/API_docs_v66/methods/messages_checkChatInvite.md
+++ b/old_docs/API_docs_v66/methods/messages_checkChatInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ChatInvite = messages.checkChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
diff --git a/old_docs/API_docs_v66/methods/messages_createChat.md b/old_docs/API_docs_v66/methods/messages_createChat.md
index 8f6e9672..b2623f1d 100644
--- a/old_docs/API_docs_v66/methods/messages_createChat.md
+++ b/old_docs/API_docs_v66/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v66/methods/messages_deleteChatUser.md b/old_docs/API_docs_v66/methods/messages_deleteChatUser.md
index 63529571..11b9b220 100644
--- a/old_docs/API_docs_v66/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v66/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v66/methods/messages_deleteHistory.md b/old_docs/API_docs_v66/methods/messages_deleteHistory.md
index 2ade177e..338c2cdf 100644
--- a/old_docs/API_docs_v66/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v66/methods/messages_deleteHistory.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({just_clear=Bool, peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v66/methods/messages_deleteMessages.md b/old_docs/API_docs_v66/methods/messages_deleteMessages.md
index 4c65080a..41517dd0 100644
--- a/old_docs/API_docs_v66/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v66/methods/messages_deleteMessages.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.deleteMessages({revoke=Bool, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v66/methods/messages_discardEncryption.md b/old_docs/API_docs_v66/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v66/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v66/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v66/methods/messages_editChatAdmin.md b/old_docs/API_docs_v66/methods/messages_editChatAdmin.md
index 2b4dc94c..6f6c1376 100644
--- a/old_docs/API_docs_v66/methods/messages_editChatAdmin.md
+++ b/old_docs/API_docs_v66/methods/messages_editChatAdmin.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.editChatAdmin({chat_id=InputPeer, user_id=InputUser, is_admin=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v66/methods/messages_editChatPhoto.md b/old_docs/API_docs_v66/methods/messages_editChatPhoto.md
index 2a82c232..a21a03b9 100644
--- a/old_docs/API_docs_v66/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v66/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Updates = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v66/methods/messages_editChatTitle.md b/old_docs/API_docs_v66/methods/messages_editChatTitle.md
index 2c338ad6..72f78741 100644
--- a/old_docs/API_docs_v66/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v66/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v66/methods/messages_editInlineBotMessage.md b/old_docs/API_docs_v66/methods/messages_editInlineBotMessage.md
index f22642f2..c274cbb9 100644
--- a/old_docs/API_docs_v66/methods/messages_editInlineBotMessage.md
+++ b/old_docs/API_docs_v66/methods/messages_editInlineBotMessage.md
@@ -95,11 +95,11 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
diff --git a/old_docs/API_docs_v66/methods/messages_editMessage.md b/old_docs/API_docs_v66/methods/messages_editMessage.md
index 05fee4b3..d3ce5261 100644
--- a/old_docs/API_docs_v66/methods/messages_editMessage.md
+++ b/old_docs/API_docs_v66/methods/messages_editMessage.md
@@ -96,20 +96,20 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v66/methods/messages_exportChatInvite.md b/old_docs/API_docs_v66/methods/messages_exportChatInvite.md
index f3449e79..bc6272e4 100644
--- a/old_docs/API_docs_v66/methods/messages_exportChatInvite.md
+++ b/old_docs/API_docs_v66/methods/messages_exportChatInvite.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
ExportedChatInvite = messages.exportChatInvite({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v66/methods/messages_forwardMessage.md b/old_docs/API_docs_v66/methods/messages_forwardMessage.md
index c8e0b18d..95f6d2f3 100644
--- a/old_docs/API_docs_v66/methods/messages_forwardMessage.md
+++ b/old_docs/API_docs_v66/methods/messages_forwardMessage.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Updates = messages.forwardMessage({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|YOU_BLOCKED_USER|You blocked this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|YOU_BLOCKED_USER|You blocked this user|
diff --git a/old_docs/API_docs_v66/methods/messages_forwardMessages.md b/old_docs/API_docs_v66/methods/messages_forwardMessages.md
index db772b23..2d751dcb 100644
--- a/old_docs/API_docs_v66/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v66/methods/messages_forwardMessages.md
@@ -47,29 +47,29 @@ Or, if you're into Lua:
Updates = messages.forwardMessages({silent=Bool, background=Bool, with_my_score=Bool, from_peer=InputPeer, id={int}, to_peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v66/methods/messages_getBotCallbackAnswer.md b/old_docs/API_docs_v66/methods/messages_getBotCallbackAnswer.md
index f97fa5b0..3f8cc23b 100644
--- a/old_docs/API_docs_v66/methods/messages_getBotCallbackAnswer.md
+++ b/old_docs/API_docs_v66/methods/messages_getBotCallbackAnswer.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
messages_BotCallbackAnswer = messages.getBotCallbackAnswer({game=Bool, peer=InputPeer, msg_id=int, data='bytes', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v66/methods/messages_getChats.md b/old_docs/API_docs_v66/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/old_docs/API_docs_v66/methods/messages_getChats.md
+++ b/old_docs/API_docs_v66/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v66/methods/messages_getCommonChats.md b/old_docs/API_docs_v66/methods/messages_getCommonChats.md
index 9470a0ee..cff23c3f 100644
--- a/old_docs/API_docs_v66/methods/messages_getCommonChats.md
+++ b/old_docs/API_docs_v66/methods/messages_getCommonChats.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_Chats = messages.getCommonChats({user_id=InputUser, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v66/methods/messages_getDhConfig.md b/old_docs/API_docs_v66/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v66/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v66/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v66/methods/messages_getDialogs.md b/old_docs/API_docs_v66/methods/messages_getDialogs.md
index 28590399..e95ea75b 100644
--- a/old_docs/API_docs_v66/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v66/methods/messages_getDialogs.md
@@ -46,13 +46,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({exclude_pinned=Bool, offset_date=int, offset_id=int, offset_peer=InputPeer, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v66/methods/messages_getDocumentByHash.md b/old_docs/API_docs_v66/methods/messages_getDocumentByHash.md
index 73a235d5..06469c52 100644
--- a/old_docs/API_docs_v66/methods/messages_getDocumentByHash.md
+++ b/old_docs/API_docs_v66/methods/messages_getDocumentByHash.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Document = messages.getDocumentByHash({sha256='bytes', size=int, mime_type='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
diff --git a/old_docs/API_docs_v66/methods/messages_getFullChat.md b/old_docs/API_docs_v66/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v66/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v66/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v66/methods/messages_getGameHighScores.md b/old_docs/API_docs_v66/methods/messages_getGameHighScores.md
index 249e1d09..5c484bbb 100644
--- a/old_docs/API_docs_v66/methods/messages_getGameHighScores.md
+++ b/old_docs/API_docs_v66/methods/messages_getGameHighScores.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
messages_HighScores = messages.getGameHighScores({peer=InputPeer, id=int, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v66/methods/messages_getHistory.md b/old_docs/API_docs_v66/methods/messages_getHistory.md
index ced9753f..68f746ba 100644
--- a/old_docs/API_docs_v66/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v66/methods/messages_getHistory.md
@@ -48,16 +48,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset_id=int, offset_date=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v66/methods/messages_getInlineBotResults.md b/old_docs/API_docs_v66/methods/messages_getInlineBotResults.md
index 1efcb412..17d678b7 100644
--- a/old_docs/API_docs_v66/methods/messages_getInlineBotResults.md
+++ b/old_docs/API_docs_v66/methods/messages_getInlineBotResults.md
@@ -46,13 +46,13 @@ Or, if you're into Lua:
messages_BotResults = messages.getInlineBotResults({bot=InputUser, peer=InputPeer, geo_point=InputGeoPoint, query='string', offset='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
-|BOT_INVALID|This is not a valid bot|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
+|400|BOT_INVALID|This is not a valid bot|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v66/methods/messages_getInlineGameHighScores.md b/old_docs/API_docs_v66/methods/messages_getInlineGameHighScores.md
index e68c6db8..ac33b6b8 100644
--- a/old_docs/API_docs_v66/methods/messages_getInlineGameHighScores.md
+++ b/old_docs/API_docs_v66/methods/messages_getInlineGameHighScores.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_HighScores = messages.getInlineGameHighScores({id=InputBotInlineMessageID, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v66/methods/messages_getMessageEditData.md b/old_docs/API_docs_v66/methods/messages_getMessageEditData.md
index 7f1b7164..b907d78c 100644
--- a/old_docs/API_docs_v66/methods/messages_getMessageEditData.md
+++ b/old_docs/API_docs_v66/methods/messages_getMessageEditData.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_MessageEditData = messages.getMessageEditData({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v66/methods/messages_getMessagesViews.md b/old_docs/API_docs_v66/methods/messages_getMessagesViews.md
index 3d490315..143e568c 100644
--- a/old_docs/API_docs_v66/methods/messages_getMessagesViews.md
+++ b/old_docs/API_docs_v66/methods/messages_getMessagesViews.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
Vector_of_int = messages.getMessagesViews({peer=InputPeer, id={int}, increment=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v66/methods/messages_getPeerDialogs.md b/old_docs/API_docs_v66/methods/messages_getPeerDialogs.md
index 6811001a..0c770183 100644
--- a/old_docs/API_docs_v66/methods/messages_getPeerDialogs.md
+++ b/old_docs/API_docs_v66/methods/messages_getPeerDialogs.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPeerDialogs({peers={InputPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v66/methods/messages_getPeerSettings.md b/old_docs/API_docs_v66/methods/messages_getPeerSettings.md
index 26dafb9b..69032ff5 100644
--- a/old_docs/API_docs_v66/methods/messages_getPeerSettings.md
+++ b/old_docs/API_docs_v66/methods/messages_getPeerSettings.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
PeerSettings = messages.getPeerSettings({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v66/methods/messages_getPinnedDialogs.md b/old_docs/API_docs_v66/methods/messages_getPinnedDialogs.md
index 828d622e..f106098d 100644
--- a/old_docs/API_docs_v66/methods/messages_getPinnedDialogs.md
+++ b/old_docs/API_docs_v66/methods/messages_getPinnedDialogs.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPinnedDialogs({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FOLDER_ID_INVALID|Invalid folder ID|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FOLDER_ID_INVALID|Invalid folder ID|
diff --git a/old_docs/API_docs_v66/methods/messages_getStickerSet.md b/old_docs/API_docs_v66/methods/messages_getStickerSet.md
index 57bce84d..487316cc 100644
--- a/old_docs/API_docs_v66/methods/messages_getStickerSet.md
+++ b/old_docs/API_docs_v66/methods/messages_getStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_StickerSet = messages.getStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v66/methods/messages_getWebPage.md b/old_docs/API_docs_v66/methods/messages_getWebPage.md
index ce51ff41..63ef5e93 100644
--- a/old_docs/API_docs_v66/methods/messages_getWebPage.md
+++ b/old_docs/API_docs_v66/methods/messages_getWebPage.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
WebPage = messages.getWebPage({url='string', hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|WC_CONVERT_URL_INVALID|WC convert URL invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|WC_CONVERT_URL_INVALID|WC convert URL invalid|
diff --git a/old_docs/API_docs_v66/methods/messages_hideReportSpam.md b/old_docs/API_docs_v66/methods/messages_hideReportSpam.md
index c4bf7399..57756d2e 100644
--- a/old_docs/API_docs_v66/methods/messages_hideReportSpam.md
+++ b/old_docs/API_docs_v66/methods/messages_hideReportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.hideReportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v66/methods/messages_importChatInvite.md b/old_docs/API_docs_v66/methods/messages_importChatInvite.md
index 12120867..101b4b19 100644
--- a/old_docs/API_docs_v66/methods/messages_importChatInvite.md
+++ b/old_docs/API_docs_v66/methods/messages_importChatInvite.md
@@ -42,16 +42,16 @@ Or, if you're into Lua:
Updates = messages.importChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v66/methods/messages_installStickerSet.md b/old_docs/API_docs_v66/methods/messages_installStickerSet.md
index 21a57a85..67f2aca0 100644
--- a/old_docs/API_docs_v66/methods/messages_installStickerSet.md
+++ b/old_docs/API_docs_v66/methods/messages_installStickerSet.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_StickerSetInstallResult = messages.installStickerSet({stickerset=InputStickerSet, archived=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v66/methods/messages_migrateChat.md b/old_docs/API_docs_v66/methods/messages_migrateChat.md
index a72f4c11..ee4010eb 100644
--- a/old_docs/API_docs_v66/methods/messages_migrateChat.md
+++ b/old_docs/API_docs_v66/methods/messages_migrateChat.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
Updates = messages.migrateChat({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v66/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v66/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v66/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v66/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v66/methods/messages_readHistory.md b/old_docs/API_docs_v66/methods/messages_readHistory.md
index 2ad5cd09..a7f0eca7 100644
--- a/old_docs/API_docs_v66/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v66/methods/messages_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.readHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v66/methods/messages_receivedQueue.md b/old_docs/API_docs_v66/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v66/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v66/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v66/methods/messages_reorderPinnedDialogs.md b/old_docs/API_docs_v66/methods/messages_reorderPinnedDialogs.md
index d6759a55..d89bf27a 100644
--- a/old_docs/API_docs_v66/methods/messages_reorderPinnedDialogs.md
+++ b/old_docs/API_docs_v66/methods/messages_reorderPinnedDialogs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.reorderPinnedDialogs({force=Bool, order={InputPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v66/methods/messages_reportEncryptedSpam.md b/old_docs/API_docs_v66/methods/messages_reportEncryptedSpam.md
index 9b1e868b..aeac27ef 100644
--- a/old_docs/API_docs_v66/methods/messages_reportEncryptedSpam.md
+++ b/old_docs/API_docs_v66/methods/messages_reportEncryptedSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportEncryptedSpam({peer=InputEncryptedChat, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v66/methods/messages_reportSpam.md b/old_docs/API_docs_v66/methods/messages_reportSpam.md
index e92fba13..dc256e55 100644
--- a/old_docs/API_docs_v66/methods/messages_reportSpam.md
+++ b/old_docs/API_docs_v66/methods/messages_reportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v66/methods/messages_requestEncryption.md b/old_docs/API_docs_v66/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v66/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v66/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v66/methods/messages_saveDraft.md b/old_docs/API_docs_v66/methods/messages_saveDraft.md
index 791ce234..ea6d407e 100644
--- a/old_docs/API_docs_v66/methods/messages_saveDraft.md
+++ b/old_docs/API_docs_v66/methods/messages_saveDraft.md
@@ -89,10 +89,10 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v66/methods/messages_saveGif.md b/old_docs/API_docs_v66/methods/messages_saveGif.md
index f504ff9e..010e17ec 100644
--- a/old_docs/API_docs_v66/methods/messages_saveGif.md
+++ b/old_docs/API_docs_v66/methods/messages_saveGif.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.saveGif({id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|GIF_ID_INVALID|The provided GIF ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|GIF_ID_INVALID|The provided GIF ID is invalid|
diff --git a/old_docs/API_docs_v66/methods/messages_saveRecentSticker.md b/old_docs/API_docs_v66/methods/messages_saveRecentSticker.md
index 98c74efd..072b6fe9 100644
--- a/old_docs/API_docs_v66/methods/messages_saveRecentSticker.md
+++ b/old_docs/API_docs_v66/methods/messages_saveRecentSticker.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.saveRecentSticker({attached=Bool, id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v66/methods/messages_search.md b/old_docs/API_docs_v66/methods/messages_search.md
index 5f5480cc..dc1b6934 100644
--- a/old_docs/API_docs_v66/methods/messages_search.md
+++ b/old_docs/API_docs_v66/methods/messages_search.md
@@ -49,16 +49,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({peer=InputPeer, q='string', filter=MessagesFilter, min_date=int, max_date=int, offset=int, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v66/methods/messages_searchGifs.md b/old_docs/API_docs_v66/methods/messages_searchGifs.md
index 7be4173b..1602d35e 100644
--- a/old_docs/API_docs_v66/methods/messages_searchGifs.md
+++ b/old_docs/API_docs_v66/methods/messages_searchGifs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_FoundGifs = messages.searchGifs({q='string', offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v66/methods/messages_searchGlobal.md b/old_docs/API_docs_v66/methods/messages_searchGlobal.md
index fb38398b..c8da163c 100644
--- a/old_docs/API_docs_v66/methods/messages_searchGlobal.md
+++ b/old_docs/API_docs_v66/methods/messages_searchGlobal.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
messages_Messages = messages.searchGlobal({q='string', offset_date=int, offset_peer=InputPeer, offset_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v66/methods/messages_sendEncrypted.md b/old_docs/API_docs_v66/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v66/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v66/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v66/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v66/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v66/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v66/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v66/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v66/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v66/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v66/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v66/methods/messages_sendInlineBotResult.md b/old_docs/API_docs_v66/methods/messages_sendInlineBotResult.md
index 9ffa02ae..a2b57f4d 100644
--- a/old_docs/API_docs_v66/methods/messages_sendInlineBotResult.md
+++ b/old_docs/API_docs_v66/methods/messages_sendInlineBotResult.md
@@ -48,15 +48,15 @@ Or, if you're into Lua:
Updates = messages.sendInlineBotResult({silent=Bool, background=Bool, clear_draft=Bool, peer=InputPeer, reply_to_msg_id=int, query_id=long, id='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INLINE_RESULT_EXPIRED|The inline query expired|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|QUERY_ID_EMPTY|The query ID is empty|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INLINE_RESULT_EXPIRED|The inline query expired|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|QUERY_ID_EMPTY|The query ID is empty|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v66/methods/messages_sendMedia.md b/old_docs/API_docs_v66/methods/messages_sendMedia.md
index 89dc5572..9bfd0743 100644
--- a/old_docs/API_docs_v66/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v66/methods/messages_sendMedia.md
@@ -54,31 +54,31 @@ Updates = messages.sendMedia({silent=Bool, background=Bool, clear_draft=Bool, pe
You can provide bot API reply_markup objects here.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v66/methods/messages_sendMessage.md b/old_docs/API_docs_v66/methods/messages_sendMessage.md
index 5641ebc3..e0ab305d 100644
--- a/old_docs/API_docs_v66/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v66/methods/messages_sendMessage.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v66/methods/messages_setBotCallbackAnswer.md b/old_docs/API_docs_v66/methods/messages_setBotCallbackAnswer.md
index ed058b4f..630ca61c 100644
--- a/old_docs/API_docs_v66/methods/messages_setBotCallbackAnswer.md
+++ b/old_docs/API_docs_v66/methods/messages_setBotCallbackAnswer.md
@@ -52,11 +52,11 @@ Bool = messages.setBotCallbackAnswer({alert=Bool, query_id=long, message='string
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|URL_INVALID|Invalid URL provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|URL_INVALID|Invalid URL provided|
diff --git a/old_docs/API_docs_v66/methods/messages_setBotPrecheckoutResults.md b/old_docs/API_docs_v66/methods/messages_setBotPrecheckoutResults.md
index cc615123..d6e0e61b 100644
--- a/old_docs/API_docs_v66/methods/messages_setBotPrecheckoutResults.md
+++ b/old_docs/API_docs_v66/methods/messages_setBotPrecheckoutResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotPrecheckoutResults({success=Bool, query_id=long, error='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ERROR_TEXT_EMPTY|The provided error message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ERROR_TEXT_EMPTY|The provided error message is empty|
diff --git a/old_docs/API_docs_v66/methods/messages_setBotShippingResults.md b/old_docs/API_docs_v66/methods/messages_setBotShippingResults.md
index f3a86f4f..adc4f64f 100644
--- a/old_docs/API_docs_v66/methods/messages_setBotShippingResults.md
+++ b/old_docs/API_docs_v66/methods/messages_setBotShippingResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotShippingResults({query_id=long, error='string', shipping_options={ShippingOption}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
diff --git a/old_docs/API_docs_v66/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v66/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v66/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v66/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v66/methods/messages_setGameScore.md b/old_docs/API_docs_v66/methods/messages_setGameScore.md
index 548ee889..429b04c6 100644
--- a/old_docs/API_docs_v66/methods/messages_setGameScore.md
+++ b/old_docs/API_docs_v66/methods/messages_setGameScore.md
@@ -47,12 +47,12 @@ Or, if you're into Lua:
Updates = messages.setGameScore({edit_message=Bool, force=Bool, peer=InputPeer, id=int, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v66/methods/messages_setInlineBotResults.md b/old_docs/API_docs_v66/methods/messages_setInlineBotResults.md
index ab388e39..df4c30d4 100644
--- a/old_docs/API_docs_v66/methods/messages_setInlineBotResults.md
+++ b/old_docs/API_docs_v66/methods/messages_setInlineBotResults.md
@@ -48,23 +48,23 @@ Or, if you're into Lua:
Bool = messages.setInlineBotResults({gallery=Bool, private=Bool, query_id=long, results={InputBotInlineResult}, cache_time=int, next_offset='string', switch_pm=InlineBotSwitchPM, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ARTICLE_TITLE_EMPTY|The title of the article is empty|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|PHOTO_INVALID|Photo invalid|
-|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
-|QUERY_ID_INVALID|The query ID is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|RESULT_TYPE_INVALID|Result type invalid|
-|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
-|START_PARAM_INVALID|Start parameter invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ARTICLE_TITLE_EMPTY|The title of the article is empty|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|PHOTO_INVALID|Photo invalid|
+|400|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|RESULT_TYPE_INVALID|Result type invalid|
+|400|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
+|400|START_PARAM_INVALID|Start parameter invalid|
+|403|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v66/methods/messages_setInlineGameScore.md b/old_docs/API_docs_v66/methods/messages_setInlineGameScore.md
index 5eeb1540..62b163d5 100644
--- a/old_docs/API_docs_v66/methods/messages_setInlineGameScore.md
+++ b/old_docs/API_docs_v66/methods/messages_setInlineGameScore.md
@@ -46,11 +46,11 @@ Or, if you're into Lua:
Bool = messages.setInlineGameScore({edit_message=Bool, force=Bool, id=InputBotInlineMessageID, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v66/methods/messages_setTyping.md b/old_docs/API_docs_v66/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v66/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v66/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v66/methods/messages_startBot.md b/old_docs/API_docs_v66/methods/messages_startBot.md
index aa2b2d00..4bf12aa6 100644
--- a/old_docs/API_docs_v66/methods/messages_startBot.md
+++ b/old_docs/API_docs_v66/methods/messages_startBot.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = messages.startBot({bot=InputUser, peer=InputPeer, start_param='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INVALID|This is not a valid bot|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|START_PARAM_EMPTY|The start parameter is empty|
-|START_PARAM_INVALID|Start parameter invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INVALID|This is not a valid bot|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|START_PARAM_EMPTY|The start parameter is empty|
+|400|START_PARAM_INVALID|Start parameter invalid|
diff --git a/old_docs/API_docs_v66/methods/messages_toggleChatAdmins.md b/old_docs/API_docs_v66/methods/messages_toggleChatAdmins.md
index 7851806d..8ea6e65e 100644
--- a/old_docs/API_docs_v66/methods/messages_toggleChatAdmins.md
+++ b/old_docs/API_docs_v66/methods/messages_toggleChatAdmins.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.toggleChatAdmins({chat_id=InputPeer, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v66/methods/messages_toggleDialogPin.md b/old_docs/API_docs_v66/methods/messages_toggleDialogPin.md
index 888f9a25..d44e4abc 100644
--- a/old_docs/API_docs_v66/methods/messages_toggleDialogPin.md
+++ b/old_docs/API_docs_v66/methods/messages_toggleDialogPin.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.toggleDialogPin({pinned=Bool, peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v66/methods/messages_uninstallStickerSet.md b/old_docs/API_docs_v66/methods/messages_uninstallStickerSet.md
index 59abc510..6b7a2006 100644
--- a/old_docs/API_docs_v66/methods/messages_uninstallStickerSet.md
+++ b/old_docs/API_docs_v66/methods/messages_uninstallStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.uninstallStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v66/methods/payments_getPaymentForm.md b/old_docs/API_docs_v66/methods/payments_getPaymentForm.md
index e8e04f37..4c28121f 100644
--- a/old_docs/API_docs_v66/methods/payments_getPaymentForm.md
+++ b/old_docs/API_docs_v66/methods/payments_getPaymentForm.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentForm = payments.getPaymentForm({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v66/methods/payments_getPaymentReceipt.md b/old_docs/API_docs_v66/methods/payments_getPaymentReceipt.md
index acb1c209..0e2f76a8 100644
--- a/old_docs/API_docs_v66/methods/payments_getPaymentReceipt.md
+++ b/old_docs/API_docs_v66/methods/payments_getPaymentReceipt.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentReceipt = payments.getPaymentReceipt({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v66/methods/payments_sendPaymentForm.md b/old_docs/API_docs_v66/methods/payments_sendPaymentForm.md
index b8fa905d..1910ede8 100644
--- a/old_docs/API_docs_v66/methods/payments_sendPaymentForm.md
+++ b/old_docs/API_docs_v66/methods/payments_sendPaymentForm.md
@@ -45,10 +45,10 @@ Or, if you're into Lua:
payments_PaymentResult = payments.sendPaymentForm({msg_id=int, requested_info_id='string', shipping_option_id='string', credentials=InputPaymentCredentials, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v66/methods/payments_validateRequestedInfo.md b/old_docs/API_docs_v66/methods/payments_validateRequestedInfo.md
index 3b9da7e6..f18e1660 100644
--- a/old_docs/API_docs_v66/methods/payments_validateRequestedInfo.md
+++ b/old_docs/API_docs_v66/methods/payments_validateRequestedInfo.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
payments_ValidatedRequestedInfo = payments.validateRequestedInfo({save=Bool, msg_id=int, info=PaymentRequestedInfo, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v66/methods/phone_acceptCall.md b/old_docs/API_docs_v66/methods/phone_acceptCall.md
index b75ac65b..f5c58f01 100644
--- a/old_docs/API_docs_v66/methods/phone_acceptCall.md
+++ b/old_docs/API_docs_v66/methods/phone_acceptCall.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->acceptCall(['peer' => InputPhoneCall, 'g_b' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.acceptCall({peer=InputPhoneCall, g_b='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
diff --git a/old_docs/API_docs_v66/methods/phone_confirmCall.md b/old_docs/API_docs_v66/methods/phone_confirmCall.md
index 1a75563d..468307cc 100644
--- a/old_docs/API_docs_v66/methods/phone_confirmCall.md
+++ b/old_docs/API_docs_v66/methods/phone_confirmCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->confirmCall(['peer' => InputPhoneCall, 'g_a' => 'bytes', 'key_fingerprint' => long, 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.confirmCall({peer=InputPhoneCall, g_a='bytes', key_fingerprint=long, protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v66/methods/phone_discardCall.md b/old_docs/API_docs_v66/methods/phone_discardCall.md
index e50456eb..ffaa18ea 100644
--- a/old_docs/API_docs_v66/methods/phone_discardCall.md
+++ b/old_docs/API_docs_v66/methods/phone_discardCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|duration|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|reason|[PhoneCallDiscardReason](../types/PhoneCallDiscardReason.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|connection\_id|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [Updates](../types/Updates.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Updates = $MadelineProto->phone->discardCall(['peer' => InputPhoneCall, 'duration' => int, 'reason' => PhoneCallDiscardReason, 'connection_id' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Updates = phone.discardCall({peer=InputPhoneCall, duration=int, reason=PhoneCallDiscardReason, connection_id=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v66/methods/phone_receivedCall.md b/old_docs/API_docs_v66/methods/phone_receivedCall.md
index c43bc8ac..6091424b 100644
--- a/old_docs/API_docs_v66/methods/phone_receivedCall.md
+++ b/old_docs/API_docs_v66/methods/phone_receivedCall.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Bool = phone.receivedCall({peer=InputPhoneCall, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_ALREADY_DECLINED|The call was already declined|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v66/methods/phone_requestCall.md b/old_docs/API_docs_v66/methods/phone_requestCall.md
index 9b8df564..c8e828f2 100644
--- a/old_docs/API_docs_v66/methods/phone_requestCall.md
+++ b/old_docs/API_docs_v66/methods/phone_requestCall.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Optional|
+|g\_a\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->requestCall(['user_id' => InputUser, 'g_a_hash' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.requestCall({user_id=InputUser, g_a_hash='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
+|400|PARTICIPANT_VERSION_OUTDATED|The other participant does not use an up to date telegram client with support for calls|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|403|USER_IS_BLOCKED|You were blocked by this user|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v66/methods/phone_saveCallDebug.md b/old_docs/API_docs_v66/methods/phone_saveCallDebug.md
index 8acbc353..1e793c05 100644
--- a/old_docs/API_docs_v66/methods/phone_saveCallDebug.md
+++ b/old_docs/API_docs_v66/methods/phone_saveCallDebug.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = phone.saveCallDebug({peer=InputPhoneCall, debug=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
-|DATA_JSON_INVALID|The provided JSON data is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|DATA_JSON_INVALID|The provided JSON data is invalid|
diff --git a/old_docs/API_docs_v66/methods/phone_setCallRating.md b/old_docs/API_docs_v66/methods/phone_setCallRating.md
index 9bc6bdd0..9daed209 100644
--- a/old_docs/API_docs_v66/methods/phone_setCallRating.md
+++ b/old_docs/API_docs_v66/methods/phone_setCallRating.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Updates = phone.setCallRating({peer=InputPhoneCall, rating=int, comment='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v66/methods/photos_getUserPhotos.md b/old_docs/API_docs_v66/methods/photos_getUserPhotos.md
index 57f5772b..a01f3180 100644
--- a/old_docs/API_docs_v66/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v66/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v66/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v66/methods/photos_updateProfilePhoto.md
index cca2fe30..f7c91ec6 100644
--- a/old_docs/API_docs_v66/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v66/methods/photos_updateProfilePhoto.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v66/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v66/methods/photos_uploadProfilePhoto.md
index 457bade8..badde2de 100644
--- a/old_docs/API_docs_v66/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v66/methods/photos_uploadProfilePhoto.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v66/methods/updates_getChannelDifference.md b/old_docs/API_docs_v66/methods/updates_getChannelDifference.md
index 6fa79529..9735c14a 100644
--- a/old_docs/API_docs_v66/methods/updates_getChannelDifference.md
+++ b/old_docs/API_docs_v66/methods/updates_getChannelDifference.md
@@ -7,8 +7,56 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|force|[Bool](../types/Bool.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|filter|[ChannelMessagesFilter](../types/ChannelMessagesFilter.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_ChannelDifference](../types/updates_ChannelDifference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_ChannelDifference = $MadelineProto->updates->getChannelDifference(['force' => Bool, 'channel' => InputChannel, 'filter' => ChannelMessagesFilter, 'pts' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_ChannelDifference = updates.getChannelDifference({force=Bool, channel=InputChannel, filter=ChannelMessagesFilter, pts=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|400|RANGES_INVALID|Invalid range provided|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v66/methods/updates_getDifference.md b/old_docs/API_docs_v66/methods/updates_getDifference.md
index 33e7d7f2..bcfac4e2 100644
--- a/old_docs/API_docs_v66/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v66/methods/updates_getDifference.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|pts\_total\_limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'pts_total_limit' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, pts_total_limit=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v66/methods/updates_getState.md b/old_docs/API_docs_v66/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v66/methods/updates_getState.md
+++ b/old_docs/API_docs_v66/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v66/methods/upload_getCdnFile.md b/old_docs/API_docs_v66/methods/upload_getCdnFile.md
index 5e5b3f43..be9ad311 100644
--- a/old_docs/API_docs_v66/methods/upload_getCdnFile.md
+++ b/old_docs/API_docs_v66/methods/upload_getCdnFile.md
@@ -7,8 +7,40 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_CdnFile](../types/upload_CdnFile.md)
+
+### Can bots use this method: **NO**
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_CdnFile = $MadelineProto->upload->getCdnFile(['file_token' => 'bytes', 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_CdnFile = upload.getCdnFile({file_token='bytes', offset=int, limit=int, })
+```
+
diff --git a/old_docs/API_docs_v66/methods/upload_getFile.md b/old_docs/API_docs_v66/methods/upload_getFile.md
index c72e6090..d8b433d6 100644
--- a/old_docs/API_docs_v66/methods/upload_getFile.md
+++ b/old_docs/API_docs_v66/methods/upload_getFile.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v66/methods/upload_getWebFile.md b/old_docs/API_docs_v66/methods/upload_getWebFile.md
index 21179a66..7b63f96c 100644
--- a/old_docs/API_docs_v66/methods/upload_getWebFile.md
+++ b/old_docs/API_docs_v66/methods/upload_getWebFile.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
upload_WebFile = upload.getWebFile({location=InputWebFileLocation, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LOCATION_INVALID|The provided location is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LOCATION_INVALID|The provided location is invalid|
diff --git a/old_docs/API_docs_v66/methods/upload_reuploadCdnFile.md b/old_docs/API_docs_v66/methods/upload_reuploadCdnFile.md
index cc20d5e3..f90afae4 100644
--- a/old_docs/API_docs_v66/methods/upload_reuploadCdnFile.md
+++ b/old_docs/API_docs_v66/methods/upload_reuploadCdnFile.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|request\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->reuploadCdnFile(['file_token' => 'bytes', 'request_token' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.reuploadCdnFile({file_token='bytes', request_token='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/old_docs/API_docs_v66/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v66/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v66/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v66/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v66/methods/upload_saveFilePart.md b/old_docs/API_docs_v66/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v66/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v66/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v66/methods/users_getFullUser.md b/old_docs/API_docs_v66/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v66/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v66/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v66/methods/users_getUsers.md b/old_docs/API_docs_v66/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v66/methods/users_getUsers.md
+++ b/old_docs/API_docs_v66/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v68/methods/README.md b/old_docs/API_docs_v68/methods/README.md
index f94c99bf..a161eab6 100644
--- a/old_docs/API_docs_v68/methods/README.md
+++ b/old_docs/API_docs_v68/methods/README.md
@@ -30,411 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Add a sticker set: messages.installStickerSet
-
-* Add a sticker to recent stickers: messages.saveRecentSticker
-
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add phone number as contact: contacts.importContacts
-
-* Add sticker to stickerset: stickers.addStickerToSet
-
-* Add users to channel/supergroup: channels.inviteToChannel
-
-* Allow or disallow any user to invite users to this channel/supergroup: channels.toggleInvites
-
-* Block a user: contacts.block
-
-* Bots only: send payment form: payments.sendPaymentForm
-
-* Bots only: set precheckout results: messages.setBotPrecheckoutResults
-
-* Bots only: set shipping results: messages.setBotShippingResults
-
-* Bots only: set the callback answer (after a button was clicked): messages.setBotCallbackAnswer
-
-* Bots only: set the results of an inline query: messages.setInlineBotResults
-
-* Call inline bot: messages.getInlineBotResults
-
-* Change notification settings: account.updateNotifySettings
-
-* Change sticker position in photo: stickers.changeStickerPosition
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if about to edit a message or a media caption: messages.getMessageEditData
-
-* Check if an invitation link is valid: messages.checkChatInvite
-
-* Check if this phone number is registered on telegram: auth.checkPhone
-
-* Check if this username is available: account.checkUsername
-
-* Check if this username is free and can be assigned to a channel/supergroup: channels.checkUsername
-
-* Clear all recent stickers: messages.clearRecentStickers
-
-* Clear saved payments info: payments.clearSavedInfo
-
-* Confirm this phone number is associated to this account, obtain phone_code_hash from sendConfirmPhoneCode: account.confirmPhone
-
-* Convert chat to supergroup: messages.migrateChat
-
-* Create a chat (not supergroup): messages.createChat
-
-* Create channel/supergroup: channels.createChannel
-
-* Create stickerset: stickers.createStickerSet
-
-* Delete a certain session: account.resetAuthorization
-
-* Delete a channel/supergroup: channels.deleteChannel
-
-* Delete a contact: contacts.deleteContact
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete all messages of a user in a channel/supergroup: channels.deleteUserHistory
-
-* Delete all temporary authorization keys except the ones provided: auth.dropTempAuthKeys
-
-* Delete channel/supergroup messages: channels.deleteMessages
-
-* Delete chat history: messages.deleteHistory
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete this account: account.deleteAccount
-
-* Destroy current authorization key: destroy_auth_key
-
-* Destroy the current MTProto session: destroy_session
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Do not send answer to provided request: rpc_drop_answer
-
-* Download a file through telegram: upload.getWebFile
-
-* Edit a message: messages.editMessage
-
-* Edit a sent inline message: messages.editInlineBotMessage
-
-* Edit admin permissions of a user in a channel/supergroup: channels.editAdmin
-
-* Edit admin permissions: messages.editChatAdmin
-
-* Edit the about text of a channel/supergroup: channels.editAbout
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the photo of a supergroup/channel: channels.editPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Edit the title of a supergroup/channel: channels.editTitle
-
-* Enable all users are admins in normal groups (not supergroups): messages.toggleChatAdmins
-
-* Export chat invite : messages.exportChatInvite
-
-* Export contact as card: contacts.exportCard
-
-* Export the invite link of a channel: channels.exportInvite
-
-* Forward message: messages.forwardMessage
-
-* Forward messages: messages.forwardMessages
-
-* Get CDN configuration: help.getCdnConfig
-
-* Get a stickerset: messages.getStickerSet
-
-* Get account TTL: account.getAccountTTL
-
-* Get admin log of a channel/supergroup: channels.getAdminLog
-
-* Get all archived stickers: messages.getArchivedStickers
-
-* Get all chats (not supergroups or channels): messages.getAllChats
-
-* Get all contacts: contacts.getContacts
-
-* Get all logged-in authorizations: account.getAuthorizations
-
-* Get all message drafts: messages.getAllDrafts
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get all supergroups/channels where you're admin: channels.getAdminedPublicChannels
-
-* Get and increase message views: messages.getMessagesViews
-
-* Get available languages: langpack.getLanguages
-
-* Get blocked users: contacts.getBlocked
-
-* Get call configuration: phone.getCallConfig
-
-* Get channel/supergroup messages: channels.getMessages
-
-* Get channel/supergroup participants (you should use `$MadelineProto->get_pwr_chat($id)` instead): channels.getParticipants
-
-* Get chats in common with a user: messages.getCommonChats
-
-* Get dialog info of peers: messages.getPeerDialogs
-
-* Get document by SHA256 hash: messages.getDocumentByHash
-
-* Get featured stickers: messages.getFeaturedStickers
-
-* Get future salts: get_future_salts
-
-* Get high scores of a game sent in an inline message: messages.getInlineGameHighScores
-
-* Get high scores of a game: messages.getGameHighScores
-
-* Get info about a certain channel/supergroup participant: channels.getParticipant
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about multiple channels/supergroups: channels.getChannels
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get invitation text: help.getInviteText
-
-* Get language pack strings: langpack.getStrings
-
-* Get language pack updates: langpack.getDifference
-
-* Get language pack: langpack.getLangPack
-
-* Get masks: messages.getMaskStickers
-
-* Get messages: messages.getMessages
-
-* Get most used chats: contacts.getTopPeers
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get payment form: payments.getPaymentForm
-
-* Get payment receipt: payments.getPaymentReceipt
-
-* Get pinned dialogs: messages.getPinnedDialogs
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get recent stickers: messages.getRecentStickers
-
-* Get saved gifs: messages.getSavedGifs
-
-* Get saved payments info: payments.getSavedInfo
-
-* Get server configuration: help.getConfig
-
-* Get stickers attachable to images: messages.getAttachedStickers
-
-* Get temporary password for buying products through bots: account.getTmpPassword
-
-* Get terms of service: help.getTermsOfService
-
-* Get the callback answer of a bot (after clicking a button): messages.getBotCallbackAnswer
-
-* Get the changelog of this app: help.getAppChangelog
-
-* Get the current password: account.getPassword
-
-* Get the link of a message in a channel: channels.exportMessageLink
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Get the settings of apeer: messages.getPeerSettings
-
-* Get webpage preview: messages.getWebPage
-
-* Get webpage preview: messages.getWebPagePreview
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Global message search: messages.searchGlobal
-
-* Hide report spam popup: messages.hideReportSpam
-
-* Import card as contact: contacts.importCard
-
-* Import chat invite: messages.importChatInvite
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Invalidate sent phone code: auth.cancelCode
-
-* Invite friends to telegram!: auth.sendInvites
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invoke with method without returning updates in the socket: invokeWithoutUpdates
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Join a channel/supergroup: channels.joinChannel
-
-* Kick or ban a user from a channel/supergroup: channels.editBanned
-
-* Leave a channel/supergroup: channels.leaveChannel
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark channel/supergroup history as read: channels.readHistory
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Mark new featured stickers as read: messages.readFeaturedStickers
-
-* Notify server that you received a call (server will refuse all incoming calls until the current call is over): phone.receivedCall
-
-* Pin or unpin dialog: messages.toggleDialogPin
-
-* Pings the server and causes disconection if the same method is not called within ping_disconnect_delay: ping_delay_disconnect
-
-* Pings the server: ping
-
-* Register device for push notifications: account.registerDevice
-
-* Remove a sticker set: messages.uninstallStickerSet
-
-* Remove sticker from stickerset: stickers.removeStickerFromSet
-
-* Reorder pinned dialogs: messages.reorderPinnedDialogs
-
-* Reorder sticker sets: messages.reorderStickerSets
-
-* Report a message in a supergroup/channel for spam: channels.reportSpam
-
-* Report a peer for spam: messages.reportSpam
-
-* Report for spam a secret chat: messages.reportEncryptedSpam
-
-* Report for spam: account.reportPeer
-
-* Requests Diffie-hellman parameters for key exchange: req_DH_params
-
-* Requests PQ for factorization: req_pq
-
-* Resend the SMS verification code: auth.resendCode
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Reset top peer rating for a certain category/peer: contacts.resetTopPeerRating
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Save a GIF: messages.saveGif
-
-* Save a message draft: messages.saveDraft
-
-* Save call debugging info: phone.saveCallDebug
-
-* Save developer info for telegram contest: contest.saveDeveloperInfo
-
-* Search contacts: contacts.search
-
-* Search gifs: messages.searchGifs
-
-* Search peers or messages: messages.search
-
-* Send a custom request to the bot API: bots.sendCustomRequest
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send an email to recover the 2FA password: auth.requestPasswordRecovery
-
-* Send confirmation phone code: account.sendConfirmPhoneCode
-
-* Send inline bot result obtained with messages.getInlineBotResults to the chat: messages.sendInlineBotResult
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Send webhook request via bot API: bots.answerWebhookJSONQuery
-
-* Set account TTL: account.setAccountTTL
-
-* Set phone call rating: phone.setCallRating
-
-* Set privacy settings: account.setPrivacy
-
-* Set the game score of an inline message: messages.setInlineGameScore
-
-* Set the game score: messages.setGameScore
-
-* Set the pinned message of a channel/supergroup: channels.updatePinnedMessage
-
-* Set the update status of webhook: help.setBotUpdatesStatus
-
-* Sets client diffie-hellman parameters: set_client_DH_params
-
-* Start a bot: messages.startBot
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Toggle channel signatures: channels.toggleSignatures
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update profile info: account.updateProfile
-
-* Update the username of a supergroup/channel: channels.updateUsername
-
-* Update this user's username: account.updateUsername
-
-* Upload a file without sending it to anyone: messages.uploadMedia
-
-* Upload profile photo: photos.uploadProfilePhoto
-
-* Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
-
-* Validate requested payment info: payments.validateRequestedInfo
-
diff --git a/old_docs/API_docs_v68/methods/account_changePhone.md b/old_docs/API_docs_v68/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/old_docs/API_docs_v68/methods/account_changePhone.md
+++ b/old_docs/API_docs_v68/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v68/methods/account_checkUsername.md b/old_docs/API_docs_v68/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v68/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v68/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v68/methods/account_confirmPhone.md b/old_docs/API_docs_v68/methods/account_confirmPhone.md
index b730c2dc..c114cd20 100644
--- a/old_docs/API_docs_v68/methods/account_confirmPhone.md
+++ b/old_docs/API_docs_v68/methods/account_confirmPhone.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = account.confirmPhone({phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_HASH_INVALID|Code hash invalid|
-|PHONE_CODE_EMPTY|phone_code is missing|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_HASH_INVALID|Code hash invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
diff --git a/old_docs/API_docs_v68/methods/account_getNotifySettings.md b/old_docs/API_docs_v68/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v68/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v68/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v68/methods/account_getPasswordSettings.md b/old_docs/API_docs_v68/methods/account_getPasswordSettings.md
index 8ebb78ee..8f878365 100644
--- a/old_docs/API_docs_v68/methods/account_getPasswordSettings.md
+++ b/old_docs/API_docs_v68/methods/account_getPasswordSettings.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+Get the current 2FA settings
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+### Return type: [account\_PasswordSettings](../types/account_PasswordSettings.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$account_PasswordSettings = $MadelineProto->account->getPasswordSettings(['current_password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+account_PasswordSettings = account.getPasswordSettings({current_password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v68/methods/account_getPrivacy.md b/old_docs/API_docs_v68/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/old_docs/API_docs_v68/methods/account_getPrivacy.md
+++ b/old_docs/API_docs_v68/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v68/methods/account_getTmpPassword.md b/old_docs/API_docs_v68/methods/account_getTmpPassword.md
index fd8314ee..a74d0f5a 100644
--- a/old_docs/API_docs_v68/methods/account_getTmpPassword.md
+++ b/old_docs/API_docs_v68/methods/account_getTmpPassword.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
account_TmpPassword = account.getTmpPassword({password_hash='bytes', period=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_HASH_INVALID|The provided password hash is invalid|
-|TMP_PASSWORD_DISABLED|The temporary password is disabled|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
+|400|TMP_PASSWORD_DISABLED|The temporary password is disabled|
diff --git a/old_docs/API_docs_v68/methods/account_registerDevice.md b/old_docs/API_docs_v68/methods/account_registerDevice.md
index cf16c2a2..82a6cad9 100644
--- a/old_docs/API_docs_v68/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v68/methods/account_registerDevice.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({token_type=int, token='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v68/methods/account_reportPeer.md b/old_docs/API_docs_v68/methods/account_reportPeer.md
index a203c900..87b080eb 100644
--- a/old_docs/API_docs_v68/methods/account_reportPeer.md
+++ b/old_docs/API_docs_v68/methods/account_reportPeer.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.reportPeer({peer=InputPeer, reason=ReportReason, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v68/methods/account_resetAuthorization.md b/old_docs/API_docs_v68/methods/account_resetAuthorization.md
index c950992c..e8e8ecc4 100644
--- a/old_docs/API_docs_v68/methods/account_resetAuthorization.md
+++ b/old_docs/API_docs_v68/methods/account_resetAuthorization.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.resetAuthorization({hash=long, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v68/methods/account_sendChangePhoneCode.md b/old_docs/API_docs_v68/methods/account_sendChangePhoneCode.md
index d5be60ef..08e5e86e 100644
--- a/old_docs/API_docs_v68/methods/account_sendChangePhoneCode.md
+++ b/old_docs/API_docs_v68/methods/account_sendChangePhoneCode.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendChangePhoneCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v68/methods/account_sendConfirmPhoneCode.md b/old_docs/API_docs_v68/methods/account_sendConfirmPhoneCode.md
index 028a1fdc..9fa7b57e 100644
--- a/old_docs/API_docs_v68/methods/account_sendConfirmPhoneCode.md
+++ b/old_docs/API_docs_v68/methods/account_sendConfirmPhoneCode.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendConfirmPhoneCode({allow_flashcall=Bool, hash='string', current_number=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v68/methods/account_setAccountTTL.md b/old_docs/API_docs_v68/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/old_docs/API_docs_v68/methods/account_setAccountTTL.md
+++ b/old_docs/API_docs_v68/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/old_docs/API_docs_v68/methods/account_setPrivacy.md b/old_docs/API_docs_v68/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/old_docs/API_docs_v68/methods/account_setPrivacy.md
+++ b/old_docs/API_docs_v68/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v68/methods/account_unregisterDevice.md b/old_docs/API_docs_v68/methods/account_unregisterDevice.md
index 589f48b0..a184da43 100644
--- a/old_docs/API_docs_v68/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v68/methods/account_unregisterDevice.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v68/methods/account_updateNotifySettings.md b/old_docs/API_docs_v68/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v68/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v68/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v68/methods/account_updatePasswordSettings.md b/old_docs/API_docs_v68/methods/account_updatePasswordSettings.md
index 80f27228..68e5da6d 100644
--- a/old_docs/API_docs_v68/methods/account_updatePasswordSettings.md
+++ b/old_docs/API_docs_v68/methods/account_updatePasswordSettings.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+|new\_settings|[account\_PasswordInputSettings](../types/account_PasswordInputSettings.md) | New 2FA settings | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->account->updatePasswordSettings(['current_password_hash' => 'bytes', 'new_settings' => account_PasswordInputSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = account.updatePasswordSettings({current_password_hash='bytes', new_settings=account_PasswordInputSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EMAIL_UNCONFIRMED|Email unconfirmed|
+|400|EMAIL_UNCONFIRMED_X|The provided email isn't confirmed, X is the length of the verification code that was just sent to the email.|
+|400|NEW_SALT_INVALID|The new salt is invalid|
+|400|NEW_SETTINGS_INVALID|The new settings are invalid|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v68/methods/account_updateProfile.md b/old_docs/API_docs_v68/methods/account_updateProfile.md
index af5b6a0f..0d74c5e5 100644
--- a/old_docs/API_docs_v68/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v68/methods/account_updateProfile.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v68/methods/account_updateStatus.md b/old_docs/API_docs_v68/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v68/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v68/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v68/methods/account_updateUsername.md b/old_docs/API_docs_v68/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v68/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v68/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v68/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v68/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v68/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v68/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v68/methods/auth_cancelCode.md b/old_docs/API_docs_v68/methods/auth_cancelCode.md
index fcbd7713..a69e0118 100644
--- a/old_docs/API_docs_v68/methods/auth_cancelCode.md
+++ b/old_docs/API_docs_v68/methods/auth_cancelCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = auth.cancelCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v68/methods/auth_checkPassword.md b/old_docs/API_docs_v68/methods/auth_checkPassword.md
index 8d76c483..db65cb56 100644
--- a/old_docs/API_docs_v68/methods/auth_checkPassword.md
+++ b/old_docs/API_docs_v68/methods/auth_checkPassword.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->checkPassword(['password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.checkPassword({password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v68/methods/auth_checkPhone.md b/old_docs/API_docs_v68/methods/auth_checkPhone.md
index f3e32365..e974ce7f 100644
--- a/old_docs/API_docs_v68/methods/auth_checkPhone.md
+++ b/old_docs/API_docs_v68/methods/auth_checkPhone.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
auth_CheckedPhone = auth.checkPhone({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v68/methods/auth_exportAuthorization.md b/old_docs/API_docs_v68/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v68/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v68/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v68/methods/auth_importAuthorization.md b/old_docs/API_docs_v68/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v68/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v68/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v68/methods/auth_importBotAuthorization.md b/old_docs/API_docs_v68/methods/auth_importBotAuthorization.md
index 1a98c1b9..98a2f8ca 100644
--- a/old_docs/API_docs_v68/methods/auth_importBotAuthorization.md
+++ b/old_docs/API_docs_v68/methods/auth_importBotAuthorization.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|api\_id|[int](../types/int.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_hash|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|bot\_auth\_token|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importBotAuthorization(['api_id' => int, 'api_hash' => 'string', 'bot_auth_token' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importBotAuthorization({api_id=int, api_hash='string', bot_auth_token='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ACCESS_TOKEN_EXPIRED|Access token expired|
+|400|ACCESS_TOKEN_INVALID|Access token invalid|
+|400|API_ID_INVALID|API ID invalid|
diff --git a/old_docs/API_docs_v68/methods/auth_logOut.md b/old_docs/API_docs_v68/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v68/methods/auth_logOut.md
+++ b/old_docs/API_docs_v68/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v68/methods/auth_recoverPassword.md b/old_docs/API_docs_v68/methods/auth_recoverPassword.md
index 83ff5aed..d4bad9c5 100644
--- a/old_docs/API_docs_v68/methods/auth_recoverPassword.md
+++ b/old_docs/API_docs_v68/methods/auth_recoverPassword.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
auth_Authorization = auth.recoverPassword({code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_EMPTY|The provided code is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_EMPTY|The provided code is empty|
diff --git a/old_docs/API_docs_v68/methods/auth_requestPasswordRecovery.md b/old_docs/API_docs_v68/methods/auth_requestPasswordRecovery.md
index 1864bbb0..b6ad57ba 100644
--- a/old_docs/API_docs_v68/methods/auth_requestPasswordRecovery.md
+++ b/old_docs/API_docs_v68/methods/auth_requestPasswordRecovery.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
auth_PasswordRecovery = auth.requestPasswordRecovery({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_EMPTY|The provided password is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_EMPTY|The provided password is empty|
diff --git a/old_docs/API_docs_v68/methods/auth_resendCode.md b/old_docs/API_docs_v68/methods/auth_resendCode.md
index ff7868ea..ec730d75 100644
--- a/old_docs/API_docs_v68/methods/auth_resendCode.md
+++ b/old_docs/API_docs_v68/methods/auth_resendCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = auth.resendCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v68/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v68/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v68/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v68/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v68/methods/auth_sendCode.md b/old_docs/API_docs_v68/methods/auth_sendCode.md
index 9afebb55..1e9d1a4e 100644
--- a/old_docs/API_docs_v68/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v68/methods/auth_sendCode.md
@@ -7,8 +7,59 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|allow\_flashcall|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|current\_number|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['allow_flashcall' => Bool, 'phone_number' => 'string', 'current_number' => Bool, 'api_id' => int, 'api_hash' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, api_id=int, api_hash='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v68/methods/auth_sendInvites.md b/old_docs/API_docs_v68/methods/auth_sendInvites.md
index e10c1109..4c11023e 100644
--- a/old_docs/API_docs_v68/methods/auth_sendInvites.md
+++ b/old_docs/API_docs_v68/methods/auth_sendInvites.md
@@ -49,10 +49,10 @@ Bool = auth.sendInvites({phone_numbers={'string'}, message='string', })
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_EMPTY|The provided message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_EMPTY|The provided message is empty|
diff --git a/old_docs/API_docs_v68/methods/auth_signIn.md b/old_docs/API_docs_v68/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v68/methods/auth_signIn.md
+++ b/old_docs/API_docs_v68/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v68/methods/auth_signUp.md b/old_docs/API_docs_v68/methods/auth_signUp.md
index 15960145..31154486 100644
--- a/old_docs/API_docs_v68/methods/auth_signUp.md
+++ b/old_docs/API_docs_v68/methods/auth_signUp.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', phone_code='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v68/methods/bots_answerWebhookJSONQuery.md b/old_docs/API_docs_v68/methods/bots_answerWebhookJSONQuery.md
index ae0fa6d9..f2233514 100644
--- a/old_docs/API_docs_v68/methods/bots_answerWebhookJSONQuery.md
+++ b/old_docs/API_docs_v68/methods/bots_answerWebhookJSONQuery.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = bots.answerWebhookJSONQuery({query_id=long, data=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v68/methods/bots_sendCustomRequest.md b/old_docs/API_docs_v68/methods/bots_sendCustomRequest.md
index c1fd8183..8a6a2df5 100644
--- a/old_docs/API_docs_v68/methods/bots_sendCustomRequest.md
+++ b/old_docs/API_docs_v68/methods/bots_sendCustomRequest.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
DataJSON = bots.sendCustomRequest({custom_method='string', params=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v68/methods/channels_checkUsername.md b/old_docs/API_docs_v68/methods/channels_checkUsername.md
index 483a2f6f..52365d34 100644
--- a/old_docs/API_docs_v68/methods/channels_checkUsername.md
+++ b/old_docs/API_docs_v68/methods/channels_checkUsername.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Bool = channels.checkUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v68/methods/channels_createChannel.md b/old_docs/API_docs_v68/methods/channels_createChannel.md
index b924e6a6..ecaee0ef 100644
--- a/old_docs/API_docs_v68/methods/channels_createChannel.md
+++ b/old_docs/API_docs_v68/methods/channels_createChannel.md
@@ -45,12 +45,12 @@ Or, if you're into Lua:
Updates = channels.createChannel({broadcast=Bool, megagroup=Bool, title='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_TITLE_EMPTY|No chat title provided|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
+|406|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v68/methods/channels_deleteChannel.md b/old_docs/API_docs_v68/methods/channels_deleteChannel.md
index 53a9c23d..1b8d2d48 100644
--- a/old_docs/API_docs_v68/methods/channels_deleteChannel.md
+++ b/old_docs/API_docs_v68/methods/channels_deleteChannel.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Updates = channels.deleteChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v68/methods/channels_deleteMessages.md b/old_docs/API_docs_v68/methods/channels_deleteMessages.md
index f76a9ad1..463ebad0 100644
--- a/old_docs/API_docs_v68/methods/channels_deleteMessages.md
+++ b/old_docs/API_docs_v68/methods/channels_deleteMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_AffectedMessages = channels.deleteMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v68/methods/channels_deleteUserHistory.md b/old_docs/API_docs_v68/methods/channels_deleteUserHistory.md
index 0a4e7d82..33905a7e 100644
--- a/old_docs/API_docs_v68/methods/channels_deleteUserHistory.md
+++ b/old_docs/API_docs_v68/methods/channels_deleteUserHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedHistory = channels.deleteUserHistory({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v68/methods/channels_editAbout.md b/old_docs/API_docs_v68/methods/channels_editAbout.md
index 47111668..d5e090e0 100644
--- a/old_docs/API_docs_v68/methods/channels_editAbout.md
+++ b/old_docs/API_docs_v68/methods/channels_editAbout.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Bool = channels.editAbout({channel=InputChannel, about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
-|CHAT_ABOUT_TOO_LONG|Chat about too long|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
+|400|CHAT_ABOUT_TOO_LONG|Chat about too long|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v68/methods/channels_editAdmin.md b/old_docs/API_docs_v68/methods/channels_editAdmin.md
index 43858599..edb7cf55 100644
--- a/old_docs/API_docs_v68/methods/channels_editAdmin.md
+++ b/old_docs/API_docs_v68/methods/channels_editAdmin.md
@@ -44,19 +44,19 @@ Or, if you're into Lua:
Updates = channels.editAdmin({channel=InputChannel, user_id=InputUser, admin_rights=ChannelAdminRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ADMINS_TOO_MUCH|There are too many admins|
-|BOT_CHANNELS_NA|Bots can't edit admin privileges|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
-|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ADMINS_TOO_MUCH|There are too many admins|
+|400|BOT_CHANNELS_NA|Bots can't edit admin privileges|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
+|403|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v68/methods/channels_editBanned.md b/old_docs/API_docs_v68/methods/channels_editBanned.md
index cffb653e..1fd5f597 100644
--- a/old_docs/API_docs_v68/methods/channels_editBanned.md
+++ b/old_docs/API_docs_v68/methods/channels_editBanned.md
@@ -44,14 +44,14 @@ Or, if you're into Lua:
Updates = channels.editBanned({channel=InputChannel, user_id=InputUser, banned_rights=ChannelBannedRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ADMIN_INVALID|You're not an admin|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ADMIN_INVALID|You're not an admin|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v68/methods/channels_editPhoto.md b/old_docs/API_docs_v68/methods/channels_editPhoto.md
index bec0ba48..caef32d5 100644
--- a/old_docs/API_docs_v68/methods/channels_editPhoto.md
+++ b/old_docs/API_docs_v68/methods/channels_editPhoto.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editPhoto({channel=InputChannel, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|PHOTO_INVALID|Photo invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|PHOTO_INVALID|Photo invalid|
diff --git a/old_docs/API_docs_v68/methods/channels_editTitle.md b/old_docs/API_docs_v68/methods/channels_editTitle.md
index b5efeb39..d7cb33da 100644
--- a/old_docs/API_docs_v68/methods/channels_editTitle.md
+++ b/old_docs/API_docs_v68/methods/channels_editTitle.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editTitle({channel=InputChannel, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v68/methods/channels_exportInvite.md b/old_docs/API_docs_v68/methods/channels_exportInvite.md
index 0918b3e7..9d578deb 100644
--- a/old_docs/API_docs_v68/methods/channels_exportInvite.md
+++ b/old_docs/API_docs_v68/methods/channels_exportInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ExportedChatInvite = channels.exportInvite({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INVITE_HASH_EXPIRED|The invite link has expired|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
diff --git a/old_docs/API_docs_v68/methods/channels_exportMessageLink.md b/old_docs/API_docs_v68/methods/channels_exportMessageLink.md
index 66cd7584..2e92ee5e 100644
--- a/old_docs/API_docs_v68/methods/channels_exportMessageLink.md
+++ b/old_docs/API_docs_v68/methods/channels_exportMessageLink.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
ExportedMessageLink = channels.exportMessageLink({channel=InputChannel, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v68/methods/channels_getAdminLog.md b/old_docs/API_docs_v68/methods/channels_getAdminLog.md
index 377c7320..adb87748 100644
--- a/old_docs/API_docs_v68/methods/channels_getAdminLog.md
+++ b/old_docs/API_docs_v68/methods/channels_getAdminLog.md
@@ -48,12 +48,12 @@ Or, if you're into Lua:
channels_AdminLogResults = channels.getAdminLog({channel=InputChannel, q='string', events_filter=ChannelAdminLogEventsFilter, admins={InputUser}, max_id=long, min_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v68/methods/channels_getChannels.md b/old_docs/API_docs_v68/methods/channels_getChannels.md
index 78d50641..95d7a188 100644
--- a/old_docs/API_docs_v68/methods/channels_getChannels.md
+++ b/old_docs/API_docs_v68/methods/channels_getChannels.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = channels.getChannels({id={InputChannel}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v68/methods/channels_getFullChannel.md b/old_docs/API_docs_v68/methods/channels_getFullChannel.md
index 45a8ec72..ebd53de4 100644
--- a/old_docs/API_docs_v68/methods/channels_getFullChannel.md
+++ b/old_docs/API_docs_v68/methods/channels_getFullChannel.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->channels->getFullChannel(['channel' => InputChannel, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = channels.getFullChannel({channel=InputChannel, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v68/methods/channels_getMessages.md b/old_docs/API_docs_v68/methods/channels_getMessages.md
index aa85d640..57bcc60f 100644
--- a/old_docs/API_docs_v68/methods/channels_getMessages.md
+++ b/old_docs/API_docs_v68/methods/channels_getMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_Messages = channels.getMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
diff --git a/old_docs/API_docs_v68/methods/channels_getParticipant.md b/old_docs/API_docs_v68/methods/channels_getParticipant.md
index 6633114f..808156fd 100644
--- a/old_docs/API_docs_v68/methods/channels_getParticipant.md
+++ b/old_docs/API_docs_v68/methods/channels_getParticipant.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
channels_ChannelParticipant = channels.getParticipant({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v68/methods/channels_getParticipants.md b/old_docs/API_docs_v68/methods/channels_getParticipants.md
index d4bd8779..21d4a418 100644
--- a/old_docs/API_docs_v68/methods/channels_getParticipants.md
+++ b/old_docs/API_docs_v68/methods/channels_getParticipants.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, filter=ChannelParticipantsFilter, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v68/methods/channels_inviteToChannel.md b/old_docs/API_docs_v68/methods/channels_inviteToChannel.md
index f7093f13..d8c5e88a 100644
--- a/old_docs/API_docs_v68/methods/channels_inviteToChannel.md
+++ b/old_docs/API_docs_v68/methods/channels_inviteToChannel.md
@@ -43,25 +43,25 @@ Or, if you're into Lua:
Updates = channels.inviteToChannel({channel=InputChannel, users={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
-|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_BLOCKED|User blocked|
-|USER_BOT|Bots can only be admins in channels.|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_KICKED|This user was kicked from this supergroup/channel|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
+|400|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_BLOCKED|User blocked|
+|400|USER_BOT|Bots can only be admins in channels.|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_KICKED|This user was kicked from this supergroup/channel|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v68/methods/channels_joinChannel.md b/old_docs/API_docs_v68/methods/channels_joinChannel.md
index b056031a..a4a7c177 100644
--- a/old_docs/API_docs_v68/methods/channels_joinChannel.md
+++ b/old_docs/API_docs_v68/methods/channels_joinChannel.md
@@ -42,15 +42,15 @@ Or, if you're into Lua:
Updates = channels.joinChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
diff --git a/old_docs/API_docs_v68/methods/channels_leaveChannel.md b/old_docs/API_docs_v68/methods/channels_leaveChannel.md
index fdea13ba..6538d443 100644
--- a/old_docs/API_docs_v68/methods/channels_leaveChannel.md
+++ b/old_docs/API_docs_v68/methods/channels_leaveChannel.md
@@ -42,14 +42,14 @@ Or, if you're into Lua:
Updates = channels.leaveChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
-|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
diff --git a/old_docs/API_docs_v68/methods/channels_readHistory.md b/old_docs/API_docs_v68/methods/channels_readHistory.md
index 93dc075f..3532dae0 100644
--- a/old_docs/API_docs_v68/methods/channels_readHistory.md
+++ b/old_docs/API_docs_v68/methods/channels_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readHistory({channel=InputChannel, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v68/methods/channels_reportSpam.md b/old_docs/API_docs_v68/methods/channels_reportSpam.md
index db80676a..7e273cc5 100644
--- a/old_docs/API_docs_v68/methods/channels_reportSpam.md
+++ b/old_docs/API_docs_v68/methods/channels_reportSpam.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
Bool = channels.reportSpam({channel=InputChannel, user_id=InputUser, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
diff --git a/old_docs/API_docs_v68/methods/channels_toggleInvites.md b/old_docs/API_docs_v68/methods/channels_toggleInvites.md
index e5d3fba1..6266d30b 100644
--- a/old_docs/API_docs_v68/methods/channels_toggleInvites.md
+++ b/old_docs/API_docs_v68/methods/channels_toggleInvites.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.toggleInvites({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v68/methods/channels_toggleSignatures.md b/old_docs/API_docs_v68/methods/channels_toggleSignatures.md
index cdfc0fda..f8624946 100644
--- a/old_docs/API_docs_v68/methods/channels_toggleSignatures.md
+++ b/old_docs/API_docs_v68/methods/channels_toggleSignatures.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = channels.toggleSignatures({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v68/methods/channels_updatePinnedMessage.md b/old_docs/API_docs_v68/methods/channels_updatePinnedMessage.md
index 53733a22..37d7c3c0 100644
--- a/old_docs/API_docs_v68/methods/channels_updatePinnedMessage.md
+++ b/old_docs/API_docs_v68/methods/channels_updatePinnedMessage.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = channels.updatePinnedMessage({silent=Bool, channel=InputChannel, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v68/methods/channels_updateUsername.md b/old_docs/API_docs_v68/methods/channels_updateUsername.md
index 677712f9..48d250e6 100644
--- a/old_docs/API_docs_v68/methods/channels_updateUsername.md
+++ b/old_docs/API_docs_v68/methods/channels_updateUsername.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Bool = channels.updateUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_OCCUPIED|The provided username is already occupied|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
diff --git a/old_docs/API_docs_v68/methods/contacts_block.md b/old_docs/API_docs_v68/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v68/methods/contacts_block.md
+++ b/old_docs/API_docs_v68/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v68/methods/contacts_deleteContact.md b/old_docs/API_docs_v68/methods/contacts_deleteContact.md
index ba9569e4..a9321d64 100644
--- a/old_docs/API_docs_v68/methods/contacts_deleteContact.md
+++ b/old_docs/API_docs_v68/methods/contacts_deleteContact.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
contacts_Link = contacts.deleteContact({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v68/methods/contacts_deleteContacts.md b/old_docs/API_docs_v68/methods/contacts_deleteContacts.md
index bfc91fdd..3c8e90f0 100644
--- a/old_docs/API_docs_v68/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v68/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v68/methods/contacts_getStatuses.md b/old_docs/API_docs_v68/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v68/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v68/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v68/methods/contacts_getTopPeers.md b/old_docs/API_docs_v68/methods/contacts_getTopPeers.md
index 4dc13d08..9ad9ab01 100644
--- a/old_docs/API_docs_v68/methods/contacts_getTopPeers.md
+++ b/old_docs/API_docs_v68/methods/contacts_getTopPeers.md
@@ -50,10 +50,10 @@ Or, if you're into Lua:
contacts_TopPeers = contacts.getTopPeers({correspondents=Bool, bots_pm=Bool, bots_inline=Bool, phone_calls=Bool, groups=Bool, channels=Bool, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TYPES_EMPTY|No top peer type was provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TYPES_EMPTY|No top peer type was provided|
diff --git a/old_docs/API_docs_v68/methods/contacts_importCard.md b/old_docs/API_docs_v68/methods/contacts_importCard.md
index 15addde1..ed3d17fe 100644
--- a/old_docs/API_docs_v68/methods/contacts_importCard.md
+++ b/old_docs/API_docs_v68/methods/contacts_importCard.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
User = contacts.importCard({export_card={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|EXPORT_CARD_INVALID|Provided card is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EXPORT_CARD_INVALID|Provided card is invalid|
diff --git a/old_docs/API_docs_v68/methods/contacts_resetTopPeerRating.md b/old_docs/API_docs_v68/methods/contacts_resetTopPeerRating.md
index 43cf1685..787be177 100644
--- a/old_docs/API_docs_v68/methods/contacts_resetTopPeerRating.md
+++ b/old_docs/API_docs_v68/methods/contacts_resetTopPeerRating.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = contacts.resetTopPeerRating({category=TopPeerCategory, peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v68/methods/contacts_resolveUsername.md b/old_docs/API_docs_v68/methods/contacts_resolveUsername.md
index fab56bb1..68f709db 100644
--- a/old_docs/API_docs_v68/methods/contacts_resolveUsername.md
+++ b/old_docs/API_docs_v68/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [contacts\_ResolvedPeer](../types/contacts_ResolvedPeer.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$contacts_ResolvedPeer = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+contacts_ResolvedPeer = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v68/methods/contacts_search.md b/old_docs/API_docs_v68/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v68/methods/contacts_search.md
+++ b/old_docs/API_docs_v68/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v68/methods/contacts_unblock.md b/old_docs/API_docs_v68/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v68/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v68/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v68/methods/help_getCdnConfig.md b/old_docs/API_docs_v68/methods/help_getCdnConfig.md
index 9e047a1d..ba526365 100644
--- a/old_docs/API_docs_v68/methods/help_getCdnConfig.md
+++ b/old_docs/API_docs_v68/methods/help_getCdnConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
CdnConfig = help.getCdnConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v68/methods/help_getConfig.md b/old_docs/API_docs_v68/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v68/methods/help_getConfig.md
+++ b/old_docs/API_docs_v68/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v68/methods/initConnection.md b/old_docs/API_docs_v68/methods/initConnection.md
index 05ba27af..49e2b675 100644
--- a/old_docs/API_docs_v68/methods/initConnection.md
+++ b/old_docs/API_docs_v68/methods/initConnection.md
@@ -49,11 +49,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', system_lang_code='string', lang_pack='string', lang_code='string', query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v68/methods/invokeWithLayer.md b/old_docs/API_docs_v68/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/old_docs/API_docs_v68/methods/invokeWithLayer.md
+++ b/old_docs/API_docs_v68/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v68/methods/langpack_getDifference.md b/old_docs/API_docs_v68/methods/langpack_getDifference.md
index ed7e4028..70295776 100644
--- a/old_docs/API_docs_v68/methods/langpack_getDifference.md
+++ b/old_docs/API_docs_v68/methods/langpack_getDifference.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getDifference({from_version=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v68/methods/langpack_getLangPack.md b/old_docs/API_docs_v68/methods/langpack_getLangPack.md
index 50684fef..de6ab2ab 100644
--- a/old_docs/API_docs_v68/methods/langpack_getLangPack.md
+++ b/old_docs/API_docs_v68/methods/langpack_getLangPack.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getLangPack({lang_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v68/methods/langpack_getLanguages.md b/old_docs/API_docs_v68/methods/langpack_getLanguages.md
index 7ffc0f3b..0b09a845 100644
--- a/old_docs/API_docs_v68/methods/langpack_getLanguages.md
+++ b/old_docs/API_docs_v68/methods/langpack_getLanguages.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_LangPackLanguage = langpack.getLanguages({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v68/methods/langpack_getStrings.md b/old_docs/API_docs_v68/methods/langpack_getStrings.md
index 1101ec91..3276120f 100644
--- a/old_docs/API_docs_v68/methods/langpack_getStrings.md
+++ b/old_docs/API_docs_v68/methods/langpack_getStrings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Vector_of_LangPackString = langpack.getStrings({lang_code='string', keys={'string'}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v68/methods/messages_acceptEncryption.md b/old_docs/API_docs_v68/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v68/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v68/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v68/methods/messages_addChatUser.md b/old_docs/API_docs_v68/methods/messages_addChatUser.md
index bc0d6253..b5e164b2 100644
--- a/old_docs/API_docs_v68/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v68/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
Updates = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v68/methods/messages_checkChatInvite.md b/old_docs/API_docs_v68/methods/messages_checkChatInvite.md
index de28b09b..0d13d55e 100644
--- a/old_docs/API_docs_v68/methods/messages_checkChatInvite.md
+++ b/old_docs/API_docs_v68/methods/messages_checkChatInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ChatInvite = messages.checkChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
diff --git a/old_docs/API_docs_v68/methods/messages_createChat.md b/old_docs/API_docs_v68/methods/messages_createChat.md
index 8f6e9672..b2623f1d 100644
--- a/old_docs/API_docs_v68/methods/messages_createChat.md
+++ b/old_docs/API_docs_v68/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v68/methods/messages_deleteChatUser.md b/old_docs/API_docs_v68/methods/messages_deleteChatUser.md
index 63529571..11b9b220 100644
--- a/old_docs/API_docs_v68/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v68/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v68/methods/messages_deleteHistory.md b/old_docs/API_docs_v68/methods/messages_deleteHistory.md
index 2ade177e..338c2cdf 100644
--- a/old_docs/API_docs_v68/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v68/methods/messages_deleteHistory.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({just_clear=Bool, peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v68/methods/messages_deleteMessages.md b/old_docs/API_docs_v68/methods/messages_deleteMessages.md
index 4c65080a..41517dd0 100644
--- a/old_docs/API_docs_v68/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v68/methods/messages_deleteMessages.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.deleteMessages({revoke=Bool, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v68/methods/messages_discardEncryption.md b/old_docs/API_docs_v68/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v68/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v68/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v68/methods/messages_editChatAdmin.md b/old_docs/API_docs_v68/methods/messages_editChatAdmin.md
index 2b4dc94c..6f6c1376 100644
--- a/old_docs/API_docs_v68/methods/messages_editChatAdmin.md
+++ b/old_docs/API_docs_v68/methods/messages_editChatAdmin.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.editChatAdmin({chat_id=InputPeer, user_id=InputUser, is_admin=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v68/methods/messages_editChatPhoto.md b/old_docs/API_docs_v68/methods/messages_editChatPhoto.md
index 2a82c232..a21a03b9 100644
--- a/old_docs/API_docs_v68/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v68/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Updates = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v68/methods/messages_editChatTitle.md b/old_docs/API_docs_v68/methods/messages_editChatTitle.md
index 2c338ad6..72f78741 100644
--- a/old_docs/API_docs_v68/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v68/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v68/methods/messages_editInlineBotMessage.md b/old_docs/API_docs_v68/methods/messages_editInlineBotMessage.md
index f22642f2..c274cbb9 100644
--- a/old_docs/API_docs_v68/methods/messages_editInlineBotMessage.md
+++ b/old_docs/API_docs_v68/methods/messages_editInlineBotMessage.md
@@ -95,11 +95,11 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
diff --git a/old_docs/API_docs_v68/methods/messages_editMessage.md b/old_docs/API_docs_v68/methods/messages_editMessage.md
index 05fee4b3..d3ce5261 100644
--- a/old_docs/API_docs_v68/methods/messages_editMessage.md
+++ b/old_docs/API_docs_v68/methods/messages_editMessage.md
@@ -96,20 +96,20 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v68/methods/messages_exportChatInvite.md b/old_docs/API_docs_v68/methods/messages_exportChatInvite.md
index f3449e79..bc6272e4 100644
--- a/old_docs/API_docs_v68/methods/messages_exportChatInvite.md
+++ b/old_docs/API_docs_v68/methods/messages_exportChatInvite.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
ExportedChatInvite = messages.exportChatInvite({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v68/methods/messages_forwardMessage.md b/old_docs/API_docs_v68/methods/messages_forwardMessage.md
index c8e0b18d..95f6d2f3 100644
--- a/old_docs/API_docs_v68/methods/messages_forwardMessage.md
+++ b/old_docs/API_docs_v68/methods/messages_forwardMessage.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Updates = messages.forwardMessage({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|YOU_BLOCKED_USER|You blocked this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|YOU_BLOCKED_USER|You blocked this user|
diff --git a/old_docs/API_docs_v68/methods/messages_forwardMessages.md b/old_docs/API_docs_v68/methods/messages_forwardMessages.md
index db772b23..2d751dcb 100644
--- a/old_docs/API_docs_v68/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v68/methods/messages_forwardMessages.md
@@ -47,29 +47,29 @@ Or, if you're into Lua:
Updates = messages.forwardMessages({silent=Bool, background=Bool, with_my_score=Bool, from_peer=InputPeer, id={int}, to_peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v68/methods/messages_getBotCallbackAnswer.md b/old_docs/API_docs_v68/methods/messages_getBotCallbackAnswer.md
index f97fa5b0..3f8cc23b 100644
--- a/old_docs/API_docs_v68/methods/messages_getBotCallbackAnswer.md
+++ b/old_docs/API_docs_v68/methods/messages_getBotCallbackAnswer.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
messages_BotCallbackAnswer = messages.getBotCallbackAnswer({game=Bool, peer=InputPeer, msg_id=int, data='bytes', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v68/methods/messages_getChats.md b/old_docs/API_docs_v68/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/old_docs/API_docs_v68/methods/messages_getChats.md
+++ b/old_docs/API_docs_v68/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v68/methods/messages_getCommonChats.md b/old_docs/API_docs_v68/methods/messages_getCommonChats.md
index 9470a0ee..cff23c3f 100644
--- a/old_docs/API_docs_v68/methods/messages_getCommonChats.md
+++ b/old_docs/API_docs_v68/methods/messages_getCommonChats.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_Chats = messages.getCommonChats({user_id=InputUser, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v68/methods/messages_getDhConfig.md b/old_docs/API_docs_v68/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v68/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v68/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v68/methods/messages_getDialogs.md b/old_docs/API_docs_v68/methods/messages_getDialogs.md
index 28590399..e95ea75b 100644
--- a/old_docs/API_docs_v68/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v68/methods/messages_getDialogs.md
@@ -46,13 +46,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({exclude_pinned=Bool, offset_date=int, offset_id=int, offset_peer=InputPeer, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v68/methods/messages_getDocumentByHash.md b/old_docs/API_docs_v68/methods/messages_getDocumentByHash.md
index 73a235d5..06469c52 100644
--- a/old_docs/API_docs_v68/methods/messages_getDocumentByHash.md
+++ b/old_docs/API_docs_v68/methods/messages_getDocumentByHash.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Document = messages.getDocumentByHash({sha256='bytes', size=int, mime_type='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
diff --git a/old_docs/API_docs_v68/methods/messages_getFullChat.md b/old_docs/API_docs_v68/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v68/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v68/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v68/methods/messages_getGameHighScores.md b/old_docs/API_docs_v68/methods/messages_getGameHighScores.md
index 249e1d09..5c484bbb 100644
--- a/old_docs/API_docs_v68/methods/messages_getGameHighScores.md
+++ b/old_docs/API_docs_v68/methods/messages_getGameHighScores.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
messages_HighScores = messages.getGameHighScores({peer=InputPeer, id=int, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v68/methods/messages_getHistory.md b/old_docs/API_docs_v68/methods/messages_getHistory.md
index ced9753f..68f746ba 100644
--- a/old_docs/API_docs_v68/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v68/methods/messages_getHistory.md
@@ -48,16 +48,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset_id=int, offset_date=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v68/methods/messages_getInlineBotResults.md b/old_docs/API_docs_v68/methods/messages_getInlineBotResults.md
index 1efcb412..17d678b7 100644
--- a/old_docs/API_docs_v68/methods/messages_getInlineBotResults.md
+++ b/old_docs/API_docs_v68/methods/messages_getInlineBotResults.md
@@ -46,13 +46,13 @@ Or, if you're into Lua:
messages_BotResults = messages.getInlineBotResults({bot=InputUser, peer=InputPeer, geo_point=InputGeoPoint, query='string', offset='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
-|BOT_INVALID|This is not a valid bot|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
+|400|BOT_INVALID|This is not a valid bot|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v68/methods/messages_getInlineGameHighScores.md b/old_docs/API_docs_v68/methods/messages_getInlineGameHighScores.md
index e68c6db8..ac33b6b8 100644
--- a/old_docs/API_docs_v68/methods/messages_getInlineGameHighScores.md
+++ b/old_docs/API_docs_v68/methods/messages_getInlineGameHighScores.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_HighScores = messages.getInlineGameHighScores({id=InputBotInlineMessageID, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v68/methods/messages_getMessageEditData.md b/old_docs/API_docs_v68/methods/messages_getMessageEditData.md
index 7f1b7164..b907d78c 100644
--- a/old_docs/API_docs_v68/methods/messages_getMessageEditData.md
+++ b/old_docs/API_docs_v68/methods/messages_getMessageEditData.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_MessageEditData = messages.getMessageEditData({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v68/methods/messages_getMessagesViews.md b/old_docs/API_docs_v68/methods/messages_getMessagesViews.md
index 3d490315..143e568c 100644
--- a/old_docs/API_docs_v68/methods/messages_getMessagesViews.md
+++ b/old_docs/API_docs_v68/methods/messages_getMessagesViews.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
Vector_of_int = messages.getMessagesViews({peer=InputPeer, id={int}, increment=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v68/methods/messages_getPeerDialogs.md b/old_docs/API_docs_v68/methods/messages_getPeerDialogs.md
index 6811001a..0c770183 100644
--- a/old_docs/API_docs_v68/methods/messages_getPeerDialogs.md
+++ b/old_docs/API_docs_v68/methods/messages_getPeerDialogs.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPeerDialogs({peers={InputPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v68/methods/messages_getPeerSettings.md b/old_docs/API_docs_v68/methods/messages_getPeerSettings.md
index 26dafb9b..69032ff5 100644
--- a/old_docs/API_docs_v68/methods/messages_getPeerSettings.md
+++ b/old_docs/API_docs_v68/methods/messages_getPeerSettings.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
PeerSettings = messages.getPeerSettings({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v68/methods/messages_getPinnedDialogs.md b/old_docs/API_docs_v68/methods/messages_getPinnedDialogs.md
index 828d622e..f106098d 100644
--- a/old_docs/API_docs_v68/methods/messages_getPinnedDialogs.md
+++ b/old_docs/API_docs_v68/methods/messages_getPinnedDialogs.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPinnedDialogs({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FOLDER_ID_INVALID|Invalid folder ID|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FOLDER_ID_INVALID|Invalid folder ID|
diff --git a/old_docs/API_docs_v68/methods/messages_getStickerSet.md b/old_docs/API_docs_v68/methods/messages_getStickerSet.md
index 57bce84d..487316cc 100644
--- a/old_docs/API_docs_v68/methods/messages_getStickerSet.md
+++ b/old_docs/API_docs_v68/methods/messages_getStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_StickerSet = messages.getStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v68/methods/messages_getWebPage.md b/old_docs/API_docs_v68/methods/messages_getWebPage.md
index ce51ff41..63ef5e93 100644
--- a/old_docs/API_docs_v68/methods/messages_getWebPage.md
+++ b/old_docs/API_docs_v68/methods/messages_getWebPage.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
WebPage = messages.getWebPage({url='string', hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|WC_CONVERT_URL_INVALID|WC convert URL invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|WC_CONVERT_URL_INVALID|WC convert URL invalid|
diff --git a/old_docs/API_docs_v68/methods/messages_hideReportSpam.md b/old_docs/API_docs_v68/methods/messages_hideReportSpam.md
index c4bf7399..57756d2e 100644
--- a/old_docs/API_docs_v68/methods/messages_hideReportSpam.md
+++ b/old_docs/API_docs_v68/methods/messages_hideReportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.hideReportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v68/methods/messages_importChatInvite.md b/old_docs/API_docs_v68/methods/messages_importChatInvite.md
index 12120867..101b4b19 100644
--- a/old_docs/API_docs_v68/methods/messages_importChatInvite.md
+++ b/old_docs/API_docs_v68/methods/messages_importChatInvite.md
@@ -42,16 +42,16 @@ Or, if you're into Lua:
Updates = messages.importChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v68/methods/messages_installStickerSet.md b/old_docs/API_docs_v68/methods/messages_installStickerSet.md
index 21a57a85..67f2aca0 100644
--- a/old_docs/API_docs_v68/methods/messages_installStickerSet.md
+++ b/old_docs/API_docs_v68/methods/messages_installStickerSet.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_StickerSetInstallResult = messages.installStickerSet({stickerset=InputStickerSet, archived=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v68/methods/messages_migrateChat.md b/old_docs/API_docs_v68/methods/messages_migrateChat.md
index a72f4c11..ee4010eb 100644
--- a/old_docs/API_docs_v68/methods/messages_migrateChat.md
+++ b/old_docs/API_docs_v68/methods/messages_migrateChat.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
Updates = messages.migrateChat({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v68/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v68/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v68/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v68/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v68/methods/messages_readHistory.md b/old_docs/API_docs_v68/methods/messages_readHistory.md
index 2ad5cd09..a7f0eca7 100644
--- a/old_docs/API_docs_v68/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v68/methods/messages_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.readHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v68/methods/messages_receivedQueue.md b/old_docs/API_docs_v68/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v68/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v68/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v68/methods/messages_reorderPinnedDialogs.md b/old_docs/API_docs_v68/methods/messages_reorderPinnedDialogs.md
index d6759a55..d89bf27a 100644
--- a/old_docs/API_docs_v68/methods/messages_reorderPinnedDialogs.md
+++ b/old_docs/API_docs_v68/methods/messages_reorderPinnedDialogs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.reorderPinnedDialogs({force=Bool, order={InputPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v68/methods/messages_reportEncryptedSpam.md b/old_docs/API_docs_v68/methods/messages_reportEncryptedSpam.md
index 9b1e868b..aeac27ef 100644
--- a/old_docs/API_docs_v68/methods/messages_reportEncryptedSpam.md
+++ b/old_docs/API_docs_v68/methods/messages_reportEncryptedSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportEncryptedSpam({peer=InputEncryptedChat, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v68/methods/messages_reportSpam.md b/old_docs/API_docs_v68/methods/messages_reportSpam.md
index e92fba13..dc256e55 100644
--- a/old_docs/API_docs_v68/methods/messages_reportSpam.md
+++ b/old_docs/API_docs_v68/methods/messages_reportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v68/methods/messages_requestEncryption.md b/old_docs/API_docs_v68/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v68/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v68/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v68/methods/messages_saveDraft.md b/old_docs/API_docs_v68/methods/messages_saveDraft.md
index 791ce234..ea6d407e 100644
--- a/old_docs/API_docs_v68/methods/messages_saveDraft.md
+++ b/old_docs/API_docs_v68/methods/messages_saveDraft.md
@@ -89,10 +89,10 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v68/methods/messages_saveGif.md b/old_docs/API_docs_v68/methods/messages_saveGif.md
index f504ff9e..010e17ec 100644
--- a/old_docs/API_docs_v68/methods/messages_saveGif.md
+++ b/old_docs/API_docs_v68/methods/messages_saveGif.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.saveGif({id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|GIF_ID_INVALID|The provided GIF ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|GIF_ID_INVALID|The provided GIF ID is invalid|
diff --git a/old_docs/API_docs_v68/methods/messages_saveRecentSticker.md b/old_docs/API_docs_v68/methods/messages_saveRecentSticker.md
index 98c74efd..072b6fe9 100644
--- a/old_docs/API_docs_v68/methods/messages_saveRecentSticker.md
+++ b/old_docs/API_docs_v68/methods/messages_saveRecentSticker.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.saveRecentSticker({attached=Bool, id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v68/methods/messages_search.md b/old_docs/API_docs_v68/methods/messages_search.md
index 109fac69..5fc8f6ee 100644
--- a/old_docs/API_docs_v68/methods/messages_search.md
+++ b/old_docs/API_docs_v68/methods/messages_search.md
@@ -50,16 +50,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({peer=InputPeer, q='string', from_id=InputUser, filter=MessagesFilter, min_date=int, max_date=int, offset=int, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v68/methods/messages_searchGifs.md b/old_docs/API_docs_v68/methods/messages_searchGifs.md
index 7be4173b..1602d35e 100644
--- a/old_docs/API_docs_v68/methods/messages_searchGifs.md
+++ b/old_docs/API_docs_v68/methods/messages_searchGifs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_FoundGifs = messages.searchGifs({q='string', offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v68/methods/messages_searchGlobal.md b/old_docs/API_docs_v68/methods/messages_searchGlobal.md
index fb38398b..c8da163c 100644
--- a/old_docs/API_docs_v68/methods/messages_searchGlobal.md
+++ b/old_docs/API_docs_v68/methods/messages_searchGlobal.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
messages_Messages = messages.searchGlobal({q='string', offset_date=int, offset_peer=InputPeer, offset_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v68/methods/messages_sendEncrypted.md b/old_docs/API_docs_v68/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v68/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v68/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v68/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v68/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v68/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v68/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v68/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v68/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v68/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v68/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v68/methods/messages_sendInlineBotResult.md b/old_docs/API_docs_v68/methods/messages_sendInlineBotResult.md
index 9ffa02ae..a2b57f4d 100644
--- a/old_docs/API_docs_v68/methods/messages_sendInlineBotResult.md
+++ b/old_docs/API_docs_v68/methods/messages_sendInlineBotResult.md
@@ -48,15 +48,15 @@ Or, if you're into Lua:
Updates = messages.sendInlineBotResult({silent=Bool, background=Bool, clear_draft=Bool, peer=InputPeer, reply_to_msg_id=int, query_id=long, id='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INLINE_RESULT_EXPIRED|The inline query expired|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|QUERY_ID_EMPTY|The query ID is empty|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INLINE_RESULT_EXPIRED|The inline query expired|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|QUERY_ID_EMPTY|The query ID is empty|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v68/methods/messages_sendMedia.md b/old_docs/API_docs_v68/methods/messages_sendMedia.md
index 89dc5572..9bfd0743 100644
--- a/old_docs/API_docs_v68/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v68/methods/messages_sendMedia.md
@@ -54,31 +54,31 @@ Updates = messages.sendMedia({silent=Bool, background=Bool, clear_draft=Bool, pe
You can provide bot API reply_markup objects here.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v68/methods/messages_sendMessage.md b/old_docs/API_docs_v68/methods/messages_sendMessage.md
index 5641ebc3..e0ab305d 100644
--- a/old_docs/API_docs_v68/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v68/methods/messages_sendMessage.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v68/methods/messages_setBotCallbackAnswer.md b/old_docs/API_docs_v68/methods/messages_setBotCallbackAnswer.md
index ed058b4f..630ca61c 100644
--- a/old_docs/API_docs_v68/methods/messages_setBotCallbackAnswer.md
+++ b/old_docs/API_docs_v68/methods/messages_setBotCallbackAnswer.md
@@ -52,11 +52,11 @@ Bool = messages.setBotCallbackAnswer({alert=Bool, query_id=long, message='string
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|URL_INVALID|Invalid URL provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|URL_INVALID|Invalid URL provided|
diff --git a/old_docs/API_docs_v68/methods/messages_setBotPrecheckoutResults.md b/old_docs/API_docs_v68/methods/messages_setBotPrecheckoutResults.md
index cc615123..d6e0e61b 100644
--- a/old_docs/API_docs_v68/methods/messages_setBotPrecheckoutResults.md
+++ b/old_docs/API_docs_v68/methods/messages_setBotPrecheckoutResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotPrecheckoutResults({success=Bool, query_id=long, error='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ERROR_TEXT_EMPTY|The provided error message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ERROR_TEXT_EMPTY|The provided error message is empty|
diff --git a/old_docs/API_docs_v68/methods/messages_setBotShippingResults.md b/old_docs/API_docs_v68/methods/messages_setBotShippingResults.md
index f3a86f4f..adc4f64f 100644
--- a/old_docs/API_docs_v68/methods/messages_setBotShippingResults.md
+++ b/old_docs/API_docs_v68/methods/messages_setBotShippingResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotShippingResults({query_id=long, error='string', shipping_options={ShippingOption}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
diff --git a/old_docs/API_docs_v68/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v68/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v68/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v68/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v68/methods/messages_setGameScore.md b/old_docs/API_docs_v68/methods/messages_setGameScore.md
index 548ee889..429b04c6 100644
--- a/old_docs/API_docs_v68/methods/messages_setGameScore.md
+++ b/old_docs/API_docs_v68/methods/messages_setGameScore.md
@@ -47,12 +47,12 @@ Or, if you're into Lua:
Updates = messages.setGameScore({edit_message=Bool, force=Bool, peer=InputPeer, id=int, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v68/methods/messages_setInlineBotResults.md b/old_docs/API_docs_v68/methods/messages_setInlineBotResults.md
index ab388e39..df4c30d4 100644
--- a/old_docs/API_docs_v68/methods/messages_setInlineBotResults.md
+++ b/old_docs/API_docs_v68/methods/messages_setInlineBotResults.md
@@ -48,23 +48,23 @@ Or, if you're into Lua:
Bool = messages.setInlineBotResults({gallery=Bool, private=Bool, query_id=long, results={InputBotInlineResult}, cache_time=int, next_offset='string', switch_pm=InlineBotSwitchPM, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ARTICLE_TITLE_EMPTY|The title of the article is empty|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|PHOTO_INVALID|Photo invalid|
-|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
-|QUERY_ID_INVALID|The query ID is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|RESULT_TYPE_INVALID|Result type invalid|
-|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
-|START_PARAM_INVALID|Start parameter invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ARTICLE_TITLE_EMPTY|The title of the article is empty|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|PHOTO_INVALID|Photo invalid|
+|400|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|RESULT_TYPE_INVALID|Result type invalid|
+|400|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
+|400|START_PARAM_INVALID|Start parameter invalid|
+|403|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v68/methods/messages_setInlineGameScore.md b/old_docs/API_docs_v68/methods/messages_setInlineGameScore.md
index 5eeb1540..62b163d5 100644
--- a/old_docs/API_docs_v68/methods/messages_setInlineGameScore.md
+++ b/old_docs/API_docs_v68/methods/messages_setInlineGameScore.md
@@ -46,11 +46,11 @@ Or, if you're into Lua:
Bool = messages.setInlineGameScore({edit_message=Bool, force=Bool, id=InputBotInlineMessageID, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v68/methods/messages_setTyping.md b/old_docs/API_docs_v68/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v68/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v68/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v68/methods/messages_startBot.md b/old_docs/API_docs_v68/methods/messages_startBot.md
index aa2b2d00..4bf12aa6 100644
--- a/old_docs/API_docs_v68/methods/messages_startBot.md
+++ b/old_docs/API_docs_v68/methods/messages_startBot.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = messages.startBot({bot=InputUser, peer=InputPeer, start_param='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INVALID|This is not a valid bot|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|START_PARAM_EMPTY|The start parameter is empty|
-|START_PARAM_INVALID|Start parameter invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INVALID|This is not a valid bot|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|START_PARAM_EMPTY|The start parameter is empty|
+|400|START_PARAM_INVALID|Start parameter invalid|
diff --git a/old_docs/API_docs_v68/methods/messages_toggleChatAdmins.md b/old_docs/API_docs_v68/methods/messages_toggleChatAdmins.md
index 7851806d..8ea6e65e 100644
--- a/old_docs/API_docs_v68/methods/messages_toggleChatAdmins.md
+++ b/old_docs/API_docs_v68/methods/messages_toggleChatAdmins.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.toggleChatAdmins({chat_id=InputPeer, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v68/methods/messages_toggleDialogPin.md b/old_docs/API_docs_v68/methods/messages_toggleDialogPin.md
index 888f9a25..d44e4abc 100644
--- a/old_docs/API_docs_v68/methods/messages_toggleDialogPin.md
+++ b/old_docs/API_docs_v68/methods/messages_toggleDialogPin.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.toggleDialogPin({pinned=Bool, peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v68/methods/messages_uninstallStickerSet.md b/old_docs/API_docs_v68/methods/messages_uninstallStickerSet.md
index 59abc510..6b7a2006 100644
--- a/old_docs/API_docs_v68/methods/messages_uninstallStickerSet.md
+++ b/old_docs/API_docs_v68/methods/messages_uninstallStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.uninstallStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v68/methods/messages_uploadMedia.md b/old_docs/API_docs_v68/methods/messages_uploadMedia.md
index afc806fe..09fc074c 100644
--- a/old_docs/API_docs_v68/methods/messages_uploadMedia.md
+++ b/old_docs/API_docs_v68/methods/messages_uploadMedia.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
MessageMedia = messages.uploadMedia({peer=InputPeer, media=InputMedia, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v68/methods/payments_getPaymentForm.md b/old_docs/API_docs_v68/methods/payments_getPaymentForm.md
index e8e04f37..4c28121f 100644
--- a/old_docs/API_docs_v68/methods/payments_getPaymentForm.md
+++ b/old_docs/API_docs_v68/methods/payments_getPaymentForm.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentForm = payments.getPaymentForm({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v68/methods/payments_getPaymentReceipt.md b/old_docs/API_docs_v68/methods/payments_getPaymentReceipt.md
index acb1c209..0e2f76a8 100644
--- a/old_docs/API_docs_v68/methods/payments_getPaymentReceipt.md
+++ b/old_docs/API_docs_v68/methods/payments_getPaymentReceipt.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentReceipt = payments.getPaymentReceipt({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v68/methods/payments_sendPaymentForm.md b/old_docs/API_docs_v68/methods/payments_sendPaymentForm.md
index b8fa905d..1910ede8 100644
--- a/old_docs/API_docs_v68/methods/payments_sendPaymentForm.md
+++ b/old_docs/API_docs_v68/methods/payments_sendPaymentForm.md
@@ -45,10 +45,10 @@ Or, if you're into Lua:
payments_PaymentResult = payments.sendPaymentForm({msg_id=int, requested_info_id='string', shipping_option_id='string', credentials=InputPaymentCredentials, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v68/methods/payments_validateRequestedInfo.md b/old_docs/API_docs_v68/methods/payments_validateRequestedInfo.md
index 3b9da7e6..f18e1660 100644
--- a/old_docs/API_docs_v68/methods/payments_validateRequestedInfo.md
+++ b/old_docs/API_docs_v68/methods/payments_validateRequestedInfo.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
payments_ValidatedRequestedInfo = payments.validateRequestedInfo({save=Bool, msg_id=int, info=PaymentRequestedInfo, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v68/methods/phone_acceptCall.md b/old_docs/API_docs_v68/methods/phone_acceptCall.md
index b75ac65b..f5c58f01 100644
--- a/old_docs/API_docs_v68/methods/phone_acceptCall.md
+++ b/old_docs/API_docs_v68/methods/phone_acceptCall.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->acceptCall(['peer' => InputPhoneCall, 'g_b' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.acceptCall({peer=InputPhoneCall, g_b='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
diff --git a/old_docs/API_docs_v68/methods/phone_confirmCall.md b/old_docs/API_docs_v68/methods/phone_confirmCall.md
index 1a75563d..468307cc 100644
--- a/old_docs/API_docs_v68/methods/phone_confirmCall.md
+++ b/old_docs/API_docs_v68/methods/phone_confirmCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->confirmCall(['peer' => InputPhoneCall, 'g_a' => 'bytes', 'key_fingerprint' => long, 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.confirmCall({peer=InputPhoneCall, g_a='bytes', key_fingerprint=long, protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v68/methods/phone_discardCall.md b/old_docs/API_docs_v68/methods/phone_discardCall.md
index e50456eb..ffaa18ea 100644
--- a/old_docs/API_docs_v68/methods/phone_discardCall.md
+++ b/old_docs/API_docs_v68/methods/phone_discardCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|duration|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|reason|[PhoneCallDiscardReason](../types/PhoneCallDiscardReason.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|connection\_id|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [Updates](../types/Updates.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Updates = $MadelineProto->phone->discardCall(['peer' => InputPhoneCall, 'duration' => int, 'reason' => PhoneCallDiscardReason, 'connection_id' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Updates = phone.discardCall({peer=InputPhoneCall, duration=int, reason=PhoneCallDiscardReason, connection_id=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v68/methods/phone_receivedCall.md b/old_docs/API_docs_v68/methods/phone_receivedCall.md
index c43bc8ac..6091424b 100644
--- a/old_docs/API_docs_v68/methods/phone_receivedCall.md
+++ b/old_docs/API_docs_v68/methods/phone_receivedCall.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Bool = phone.receivedCall({peer=InputPhoneCall, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_ALREADY_DECLINED|The call was already declined|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v68/methods/phone_requestCall.md b/old_docs/API_docs_v68/methods/phone_requestCall.md
index 9b8df564..c8e828f2 100644
--- a/old_docs/API_docs_v68/methods/phone_requestCall.md
+++ b/old_docs/API_docs_v68/methods/phone_requestCall.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Optional|
+|g\_a\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->requestCall(['user_id' => InputUser, 'g_a_hash' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.requestCall({user_id=InputUser, g_a_hash='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
+|400|PARTICIPANT_VERSION_OUTDATED|The other participant does not use an up to date telegram client with support for calls|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|403|USER_IS_BLOCKED|You were blocked by this user|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v68/methods/phone_saveCallDebug.md b/old_docs/API_docs_v68/methods/phone_saveCallDebug.md
index 8acbc353..1e793c05 100644
--- a/old_docs/API_docs_v68/methods/phone_saveCallDebug.md
+++ b/old_docs/API_docs_v68/methods/phone_saveCallDebug.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = phone.saveCallDebug({peer=InputPhoneCall, debug=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
-|DATA_JSON_INVALID|The provided JSON data is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|DATA_JSON_INVALID|The provided JSON data is invalid|
diff --git a/old_docs/API_docs_v68/methods/phone_setCallRating.md b/old_docs/API_docs_v68/methods/phone_setCallRating.md
index 9bc6bdd0..9daed209 100644
--- a/old_docs/API_docs_v68/methods/phone_setCallRating.md
+++ b/old_docs/API_docs_v68/methods/phone_setCallRating.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Updates = phone.setCallRating({peer=InputPhoneCall, rating=int, comment='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v68/methods/photos_getUserPhotos.md b/old_docs/API_docs_v68/methods/photos_getUserPhotos.md
index 57f5772b..a01f3180 100644
--- a/old_docs/API_docs_v68/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v68/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v68/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v68/methods/photos_updateProfilePhoto.md
index cca2fe30..f7c91ec6 100644
--- a/old_docs/API_docs_v68/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v68/methods/photos_updateProfilePhoto.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v68/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v68/methods/photos_uploadProfilePhoto.md
index 457bade8..badde2de 100644
--- a/old_docs/API_docs_v68/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v68/methods/photos_uploadProfilePhoto.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v68/methods/stickers_addStickerToSet.md b/old_docs/API_docs_v68/methods/stickers_addStickerToSet.md
index 78e8437c..b1fa2aad 100644
--- a/old_docs/API_docs_v68/methods/stickers_addStickerToSet.md
+++ b/old_docs/API_docs_v68/methods/stickers_addStickerToSet.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.addStickerToSet({stickerset=InputStickerSet, sticker=InputStickerSetItem, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v68/methods/stickers_changeStickerPosition.md b/old_docs/API_docs_v68/methods/stickers_changeStickerPosition.md
index 54858d10..0d3aed68 100644
--- a/old_docs/API_docs_v68/methods/stickers_changeStickerPosition.md
+++ b/old_docs/API_docs_v68/methods/stickers_changeStickerPosition.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = stickers.changeStickerPosition({sticker=InputDocument, position=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/old_docs/API_docs_v68/methods/stickers_createStickerSet.md b/old_docs/API_docs_v68/methods/stickers_createStickerSet.md
index 41e4ad11..741e0ad6 100644
--- a/old_docs/API_docs_v68/methods/stickers_createStickerSet.md
+++ b/old_docs/API_docs_v68/methods/stickers_createStickerSet.md
@@ -46,18 +46,18 @@ Or, if you're into Lua:
messages_StickerSet = stickers.createStickerSet({masks=Bool, user_id=InputUser, title='string', short_name='string', stickers={InputStickerSetItem}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|PACK_SHORT_NAME_INVALID|Short pack name invalid|
-|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|STICKER_EMOJI_INVALID|Sticker emoji invalid|
-|STICKER_FILE_INVALID|Sticker file invalid|
-|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
-|STICKERS_EMPTY|No sticker provided|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|PACK_SHORT_NAME_INVALID|Short pack name invalid|
+|400|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|STICKER_EMOJI_INVALID|Sticker emoji invalid|
+|400|STICKER_FILE_INVALID|Sticker file invalid|
+|400|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
+|400|STICKERS_EMPTY|No sticker provided|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v68/methods/stickers_removeStickerFromSet.md b/old_docs/API_docs_v68/methods/stickers_removeStickerFromSet.md
index 4bd9abaa..a8795929 100644
--- a/old_docs/API_docs_v68/methods/stickers_removeStickerFromSet.md
+++ b/old_docs/API_docs_v68/methods/stickers_removeStickerFromSet.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Bool = stickers.removeStickerFromSet({sticker=InputDocument, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/old_docs/API_docs_v68/methods/updates_getChannelDifference.md b/old_docs/API_docs_v68/methods/updates_getChannelDifference.md
index 6fa79529..9735c14a 100644
--- a/old_docs/API_docs_v68/methods/updates_getChannelDifference.md
+++ b/old_docs/API_docs_v68/methods/updates_getChannelDifference.md
@@ -7,8 +7,56 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|force|[Bool](../types/Bool.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|filter|[ChannelMessagesFilter](../types/ChannelMessagesFilter.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_ChannelDifference](../types/updates_ChannelDifference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_ChannelDifference = $MadelineProto->updates->getChannelDifference(['force' => Bool, 'channel' => InputChannel, 'filter' => ChannelMessagesFilter, 'pts' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_ChannelDifference = updates.getChannelDifference({force=Bool, channel=InputChannel, filter=ChannelMessagesFilter, pts=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|400|RANGES_INVALID|Invalid range provided|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v68/methods/updates_getDifference.md b/old_docs/API_docs_v68/methods/updates_getDifference.md
index 33e7d7f2..bcfac4e2 100644
--- a/old_docs/API_docs_v68/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v68/methods/updates_getDifference.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|pts\_total\_limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'pts_total_limit' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, pts_total_limit=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v68/methods/updates_getState.md b/old_docs/API_docs_v68/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v68/methods/updates_getState.md
+++ b/old_docs/API_docs_v68/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v68/methods/upload_getCdnFile.md b/old_docs/API_docs_v68/methods/upload_getCdnFile.md
index 5e5b3f43..be9ad311 100644
--- a/old_docs/API_docs_v68/methods/upload_getCdnFile.md
+++ b/old_docs/API_docs_v68/methods/upload_getCdnFile.md
@@ -7,8 +7,40 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_CdnFile](../types/upload_CdnFile.md)
+
+### Can bots use this method: **NO**
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_CdnFile = $MadelineProto->upload->getCdnFile(['file_token' => 'bytes', 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_CdnFile = upload.getCdnFile({file_token='bytes', offset=int, limit=int, })
+```
+
diff --git a/old_docs/API_docs_v68/methods/upload_getFile.md b/old_docs/API_docs_v68/methods/upload_getFile.md
index c72e6090..d8b433d6 100644
--- a/old_docs/API_docs_v68/methods/upload_getFile.md
+++ b/old_docs/API_docs_v68/methods/upload_getFile.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v68/methods/upload_getWebFile.md b/old_docs/API_docs_v68/methods/upload_getWebFile.md
index 21179a66..7b63f96c 100644
--- a/old_docs/API_docs_v68/methods/upload_getWebFile.md
+++ b/old_docs/API_docs_v68/methods/upload_getWebFile.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
upload_WebFile = upload.getWebFile({location=InputWebFileLocation, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LOCATION_INVALID|The provided location is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LOCATION_INVALID|The provided location is invalid|
diff --git a/old_docs/API_docs_v68/methods/upload_reuploadCdnFile.md b/old_docs/API_docs_v68/methods/upload_reuploadCdnFile.md
index cc20d5e3..f90afae4 100644
--- a/old_docs/API_docs_v68/methods/upload_reuploadCdnFile.md
+++ b/old_docs/API_docs_v68/methods/upload_reuploadCdnFile.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|request\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->reuploadCdnFile(['file_token' => 'bytes', 'request_token' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.reuploadCdnFile({file_token='bytes', request_token='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/old_docs/API_docs_v68/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v68/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v68/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v68/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v68/methods/upload_saveFilePart.md b/old_docs/API_docs_v68/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v68/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v68/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v68/methods/users_getFullUser.md b/old_docs/API_docs_v68/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v68/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v68/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v68/methods/users_getUsers.md b/old_docs/API_docs_v68/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v68/methods/users_getUsers.md
+++ b/old_docs/API_docs_v68/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v70/methods/README.md b/old_docs/API_docs_v70/methods/README.md
index cfc2ae5b..a161eab6 100644
--- a/old_docs/API_docs_v70/methods/README.md
+++ b/old_docs/API_docs_v70/methods/README.md
@@ -30,413 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Add a sticker set: messages.installStickerSet
-
-* Add a sticker to recent stickers: messages.saveRecentSticker
-
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add phone number as contact: contacts.importContacts
-
-* Add sticker to stickerset: stickers.addStickerToSet
-
-* Add users to channel/supergroup: channels.inviteToChannel
-
-* Allow or disallow any user to invite users to this channel/supergroup: channels.toggleInvites
-
-* Block a user: contacts.block
-
-* Bots only: send payment form: payments.sendPaymentForm
-
-* Bots only: set precheckout results: messages.setBotPrecheckoutResults
-
-* Bots only: set shipping results: messages.setBotShippingResults
-
-* Bots only: set the callback answer (after a button was clicked): messages.setBotCallbackAnswer
-
-* Bots only: set the results of an inline query: messages.setInlineBotResults
-
-* Call inline bot: messages.getInlineBotResults
-
-* Change notification settings: account.updateNotifySettings
-
-* Change sticker position in photo: stickers.changeStickerPosition
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if about to edit a message or a media caption: messages.getMessageEditData
-
-* Check if an invitation link is valid: messages.checkChatInvite
-
-* Check if this phone number is registered on telegram: auth.checkPhone
-
-* Check if this username is available: account.checkUsername
-
-* Check if this username is free and can be assigned to a channel/supergroup: channels.checkUsername
-
-* Clear all recent stickers: messages.clearRecentStickers
-
-* Clear saved payments info: payments.clearSavedInfo
-
-* Confirm this phone number is associated to this account, obtain phone_code_hash from sendConfirmPhoneCode: account.confirmPhone
-
-* Convert chat to supergroup: messages.migrateChat
-
-* Create a chat (not supergroup): messages.createChat
-
-* Create channel/supergroup: channels.createChannel
-
-* Create stickerset: stickers.createStickerSet
-
-* Delete a certain session: account.resetAuthorization
-
-* Delete a channel/supergroup: channels.deleteChannel
-
-* Delete a contact: contacts.deleteContact
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete all messages of a user in a channel/supergroup: channels.deleteUserHistory
-
-* Delete all temporary authorization keys except the ones provided: auth.dropTempAuthKeys
-
-* Delete channel/supergroup messages: channels.deleteMessages
-
-* Delete chat history: messages.deleteHistory
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete this account: account.deleteAccount
-
-* Destroy current authorization key: destroy_auth_key
-
-* Destroy the current MTProto session: destroy_session
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Do not send answer to provided request: rpc_drop_answer
-
-* Download a file through telegram: upload.getWebFile
-
-* Edit a message: messages.editMessage
-
-* Edit a sent inline message: messages.editInlineBotMessage
-
-* Edit admin permissions of a user in a channel/supergroup: channels.editAdmin
-
-* Edit admin permissions: messages.editChatAdmin
-
-* Edit the about text of a channel/supergroup: channels.editAbout
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the photo of a supergroup/channel: channels.editPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Edit the title of a supergroup/channel: channels.editTitle
-
-* Enable all users are admins in normal groups (not supergroups): messages.toggleChatAdmins
-
-* Export chat invite : messages.exportChatInvite
-
-* Export contact as card: contacts.exportCard
-
-* Export the invite link of a channel: channels.exportInvite
-
-* Forward message: messages.forwardMessage
-
-* Forward messages: messages.forwardMessages
-
-* Get CDN configuration: help.getCdnConfig
-
-* Get a stickerset: messages.getStickerSet
-
-* Get account TTL: account.getAccountTTL
-
-* Get admin log of a channel/supergroup: channels.getAdminLog
-
-* Get all archived stickers: messages.getArchivedStickers
-
-* Get all chats (not supergroups or channels): messages.getAllChats
-
-* Get all contacts: contacts.getContacts
-
-* Get all logged-in authorizations: account.getAuthorizations
-
-* Get all message drafts: messages.getAllDrafts
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get all supergroups/channels where you're admin: channels.getAdminedPublicChannels
-
-* Get and increase message views: messages.getMessagesViews
-
-* Get available languages: langpack.getLanguages
-
-* Get blocked users: contacts.getBlocked
-
-* Get call configuration: phone.getCallConfig
-
-* Get channel/supergroup messages: channels.getMessages
-
-* Get channel/supergroup participants (you should use `$MadelineProto->get_pwr_chat($id)` instead): channels.getParticipants
-
-* Get chats in common with a user: messages.getCommonChats
-
-* Get dialog info of peers: messages.getPeerDialogs
-
-* Get document by SHA256 hash: messages.getDocumentByHash
-
-* Get featured stickers: messages.getFeaturedStickers
-
-* Get future salts: get_future_salts
-
-* Get high scores of a game sent in an inline message: messages.getInlineGameHighScores
-
-* Get high scores of a game: messages.getGameHighScores
-
-* Get info about a certain channel/supergroup participant: channels.getParticipant
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about multiple channels/supergroups: channels.getChannels
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get invitation text: help.getInviteText
-
-* Get language pack strings: langpack.getStrings
-
-* Get language pack updates: langpack.getDifference
-
-* Get language pack: langpack.getLangPack
-
-* Get masks: messages.getMaskStickers
-
-* Get messages: messages.getMessages
-
-* Get most used chats: contacts.getTopPeers
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get payment form: payments.getPaymentForm
-
-* Get payment receipt: payments.getPaymentReceipt
-
-* Get pinned dialogs: messages.getPinnedDialogs
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get recent stickers: messages.getRecentStickers
-
-* Get saved gifs: messages.getSavedGifs
-
-* Get saved payments info: payments.getSavedInfo
-
-* Get server configuration: help.getConfig
-
-* Get stickers attachable to images: messages.getAttachedStickers
-
-* Get temporary password for buying products through bots: account.getTmpPassword
-
-* Get terms of service: help.getTermsOfService
-
-* Get the callback answer of a bot (after clicking a button): messages.getBotCallbackAnswer
-
-* Get the changelog of this app: help.getAppChangelog
-
-* Get the current password: account.getPassword
-
-* Get the link of a message in a channel: channels.exportMessageLink
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Get the settings of apeer: messages.getPeerSettings
-
-* Get webpage preview: messages.getWebPage
-
-* Get webpage preview: messages.getWebPagePreview
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Global message search: messages.searchGlobal
-
-* Hide report spam popup: messages.hideReportSpam
-
-* Import card as contact: contacts.importCard
-
-* Import chat invite: messages.importChatInvite
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Invalidate sent phone code: auth.cancelCode
-
-* Invite friends to telegram!: auth.sendInvites
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invoke with method without returning updates in the socket: invokeWithoutUpdates
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Join a channel/supergroup: channels.joinChannel
-
-* Kick or ban a user from a channel/supergroup: channels.editBanned
-
-* Leave a channel/supergroup: channels.leaveChannel
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark channel/supergroup history as read: channels.readHistory
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Mark new featured stickers as read: messages.readFeaturedStickers
-
-* Notify server that you received a call (server will refuse all incoming calls until the current call is over): phone.receivedCall
-
-* Pin or unpin dialog: messages.toggleDialogPin
-
-* Pings the server and causes disconection if the same method is not called within ping_disconnect_delay: ping_delay_disconnect
-
-* Pings the server: ping
-
-* Register device for push notifications: account.registerDevice
-
-* Remove a sticker set: messages.uninstallStickerSet
-
-* Remove sticker from stickerset: stickers.removeStickerFromSet
-
-* Reorder pinned dialogs: messages.reorderPinnedDialogs
-
-* Reorder sticker sets: messages.reorderStickerSets
-
-* Report a message in a supergroup/channel for spam: channels.reportSpam
-
-* Report a peer for spam: messages.reportSpam
-
-* Report for spam a secret chat: messages.reportEncryptedSpam
-
-* Report for spam: account.reportPeer
-
-* Requests Diffie-hellman parameters for key exchange: req_DH_params
-
-* Requests PQ for factorization: req_pq
-
-* Resend the SMS verification code: auth.resendCode
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Reset top peer rating for a certain category/peer: contacts.resetTopPeerRating
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Save a GIF: messages.saveGif
-
-* Save a message draft: messages.saveDraft
-
-* Save call debugging info: phone.saveCallDebug
-
-* Save developer info for telegram contest: contest.saveDeveloperInfo
-
-* Search contacts: contacts.search
-
-* Search gifs: messages.searchGifs
-
-* Search peers or messages: messages.search
-
-* Send a custom request to the bot API: bots.sendCustomRequest
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send an email to recover the 2FA password: auth.requestPasswordRecovery
-
-* Send confirmation phone code: account.sendConfirmPhoneCode
-
-* Send inline bot result obtained with messages.getInlineBotResults to the chat: messages.sendInlineBotResult
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send screenshot notification: messages.sendScreenshotNotification
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Send webhook request via bot API: bots.answerWebhookJSONQuery
-
-* Set account TTL: account.setAccountTTL
-
-* Set phone call rating: phone.setCallRating
-
-* Set privacy settings: account.setPrivacy
-
-* Set the game score of an inline message: messages.setInlineGameScore
-
-* Set the game score: messages.setGameScore
-
-* Set the pinned message of a channel/supergroup: channels.updatePinnedMessage
-
-* Set the update status of webhook: help.setBotUpdatesStatus
-
-* Sets client diffie-hellman parameters: set_client_DH_params
-
-* Start a bot: messages.startBot
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Toggle channel signatures: channels.toggleSignatures
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update profile info: account.updateProfile
-
-* Update the username of a supergroup/channel: channels.updateUsername
-
-* Update this user's username: account.updateUsername
-
-* Upload a file without sending it to anyone: messages.uploadMedia
-
-* Upload profile photo: photos.uploadProfilePhoto
-
-* Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
-
-* Validate requested payment info: payments.validateRequestedInfo
-
diff --git a/old_docs/API_docs_v70/methods/account_changePhone.md b/old_docs/API_docs_v70/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/old_docs/API_docs_v70/methods/account_changePhone.md
+++ b/old_docs/API_docs_v70/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v70/methods/account_checkUsername.md b/old_docs/API_docs_v70/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v70/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v70/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v70/methods/account_confirmPhone.md b/old_docs/API_docs_v70/methods/account_confirmPhone.md
index b730c2dc..c114cd20 100644
--- a/old_docs/API_docs_v70/methods/account_confirmPhone.md
+++ b/old_docs/API_docs_v70/methods/account_confirmPhone.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = account.confirmPhone({phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_HASH_INVALID|Code hash invalid|
-|PHONE_CODE_EMPTY|phone_code is missing|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_HASH_INVALID|Code hash invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
diff --git a/old_docs/API_docs_v70/methods/account_getNotifySettings.md b/old_docs/API_docs_v70/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v70/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v70/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v70/methods/account_getPasswordSettings.md b/old_docs/API_docs_v70/methods/account_getPasswordSettings.md
index 8ebb78ee..8f878365 100644
--- a/old_docs/API_docs_v70/methods/account_getPasswordSettings.md
+++ b/old_docs/API_docs_v70/methods/account_getPasswordSettings.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+Get the current 2FA settings
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+### Return type: [account\_PasswordSettings](../types/account_PasswordSettings.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$account_PasswordSettings = $MadelineProto->account->getPasswordSettings(['current_password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+account_PasswordSettings = account.getPasswordSettings({current_password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v70/methods/account_getPrivacy.md b/old_docs/API_docs_v70/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/old_docs/API_docs_v70/methods/account_getPrivacy.md
+++ b/old_docs/API_docs_v70/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v70/methods/account_getTmpPassword.md b/old_docs/API_docs_v70/methods/account_getTmpPassword.md
index fd8314ee..a74d0f5a 100644
--- a/old_docs/API_docs_v70/methods/account_getTmpPassword.md
+++ b/old_docs/API_docs_v70/methods/account_getTmpPassword.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
account_TmpPassword = account.getTmpPassword({password_hash='bytes', period=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_HASH_INVALID|The provided password hash is invalid|
-|TMP_PASSWORD_DISABLED|The temporary password is disabled|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
+|400|TMP_PASSWORD_DISABLED|The temporary password is disabled|
diff --git a/old_docs/API_docs_v70/methods/account_registerDevice.md b/old_docs/API_docs_v70/methods/account_registerDevice.md
index cf16c2a2..82a6cad9 100644
--- a/old_docs/API_docs_v70/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v70/methods/account_registerDevice.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({token_type=int, token='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v70/methods/account_reportPeer.md b/old_docs/API_docs_v70/methods/account_reportPeer.md
index a203c900..87b080eb 100644
--- a/old_docs/API_docs_v70/methods/account_reportPeer.md
+++ b/old_docs/API_docs_v70/methods/account_reportPeer.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.reportPeer({peer=InputPeer, reason=ReportReason, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v70/methods/account_resetAuthorization.md b/old_docs/API_docs_v70/methods/account_resetAuthorization.md
index c950992c..e8e8ecc4 100644
--- a/old_docs/API_docs_v70/methods/account_resetAuthorization.md
+++ b/old_docs/API_docs_v70/methods/account_resetAuthorization.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.resetAuthorization({hash=long, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v70/methods/account_sendChangePhoneCode.md b/old_docs/API_docs_v70/methods/account_sendChangePhoneCode.md
index d5be60ef..08e5e86e 100644
--- a/old_docs/API_docs_v70/methods/account_sendChangePhoneCode.md
+++ b/old_docs/API_docs_v70/methods/account_sendChangePhoneCode.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendChangePhoneCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v70/methods/account_sendConfirmPhoneCode.md b/old_docs/API_docs_v70/methods/account_sendConfirmPhoneCode.md
index 028a1fdc..9fa7b57e 100644
--- a/old_docs/API_docs_v70/methods/account_sendConfirmPhoneCode.md
+++ b/old_docs/API_docs_v70/methods/account_sendConfirmPhoneCode.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendConfirmPhoneCode({allow_flashcall=Bool, hash='string', current_number=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v70/methods/account_setAccountTTL.md b/old_docs/API_docs_v70/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/old_docs/API_docs_v70/methods/account_setAccountTTL.md
+++ b/old_docs/API_docs_v70/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/old_docs/API_docs_v70/methods/account_setPrivacy.md b/old_docs/API_docs_v70/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/old_docs/API_docs_v70/methods/account_setPrivacy.md
+++ b/old_docs/API_docs_v70/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v70/methods/account_unregisterDevice.md b/old_docs/API_docs_v70/methods/account_unregisterDevice.md
index 589f48b0..a184da43 100644
--- a/old_docs/API_docs_v70/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v70/methods/account_unregisterDevice.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v70/methods/account_updateNotifySettings.md b/old_docs/API_docs_v70/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v70/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v70/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v70/methods/account_updatePasswordSettings.md b/old_docs/API_docs_v70/methods/account_updatePasswordSettings.md
index 80f27228..68e5da6d 100644
--- a/old_docs/API_docs_v70/methods/account_updatePasswordSettings.md
+++ b/old_docs/API_docs_v70/methods/account_updatePasswordSettings.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+|new\_settings|[account\_PasswordInputSettings](../types/account_PasswordInputSettings.md) | New 2FA settings | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->account->updatePasswordSettings(['current_password_hash' => 'bytes', 'new_settings' => account_PasswordInputSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = account.updatePasswordSettings({current_password_hash='bytes', new_settings=account_PasswordInputSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EMAIL_UNCONFIRMED|Email unconfirmed|
+|400|EMAIL_UNCONFIRMED_X|The provided email isn't confirmed, X is the length of the verification code that was just sent to the email.|
+|400|NEW_SALT_INVALID|The new salt is invalid|
+|400|NEW_SETTINGS_INVALID|The new settings are invalid|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v70/methods/account_updateProfile.md b/old_docs/API_docs_v70/methods/account_updateProfile.md
index af5b6a0f..0d74c5e5 100644
--- a/old_docs/API_docs_v70/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v70/methods/account_updateProfile.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v70/methods/account_updateStatus.md b/old_docs/API_docs_v70/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v70/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v70/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v70/methods/account_updateUsername.md b/old_docs/API_docs_v70/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v70/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v70/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v70/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v70/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v70/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v70/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v70/methods/auth_cancelCode.md b/old_docs/API_docs_v70/methods/auth_cancelCode.md
index fcbd7713..a69e0118 100644
--- a/old_docs/API_docs_v70/methods/auth_cancelCode.md
+++ b/old_docs/API_docs_v70/methods/auth_cancelCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = auth.cancelCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v70/methods/auth_checkPassword.md b/old_docs/API_docs_v70/methods/auth_checkPassword.md
index 8d76c483..db65cb56 100644
--- a/old_docs/API_docs_v70/methods/auth_checkPassword.md
+++ b/old_docs/API_docs_v70/methods/auth_checkPassword.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->checkPassword(['password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.checkPassword({password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v70/methods/auth_checkPhone.md b/old_docs/API_docs_v70/methods/auth_checkPhone.md
index f3e32365..e974ce7f 100644
--- a/old_docs/API_docs_v70/methods/auth_checkPhone.md
+++ b/old_docs/API_docs_v70/methods/auth_checkPhone.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
auth_CheckedPhone = auth.checkPhone({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v70/methods/auth_exportAuthorization.md b/old_docs/API_docs_v70/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v70/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v70/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v70/methods/auth_importAuthorization.md b/old_docs/API_docs_v70/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v70/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v70/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v70/methods/auth_importBotAuthorization.md b/old_docs/API_docs_v70/methods/auth_importBotAuthorization.md
index 1a98c1b9..98a2f8ca 100644
--- a/old_docs/API_docs_v70/methods/auth_importBotAuthorization.md
+++ b/old_docs/API_docs_v70/methods/auth_importBotAuthorization.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|api\_id|[int](../types/int.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_hash|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|bot\_auth\_token|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importBotAuthorization(['api_id' => int, 'api_hash' => 'string', 'bot_auth_token' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importBotAuthorization({api_id=int, api_hash='string', bot_auth_token='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ACCESS_TOKEN_EXPIRED|Access token expired|
+|400|ACCESS_TOKEN_INVALID|Access token invalid|
+|400|API_ID_INVALID|API ID invalid|
diff --git a/old_docs/API_docs_v70/methods/auth_logOut.md b/old_docs/API_docs_v70/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v70/methods/auth_logOut.md
+++ b/old_docs/API_docs_v70/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v70/methods/auth_recoverPassword.md b/old_docs/API_docs_v70/methods/auth_recoverPassword.md
index 83ff5aed..d4bad9c5 100644
--- a/old_docs/API_docs_v70/methods/auth_recoverPassword.md
+++ b/old_docs/API_docs_v70/methods/auth_recoverPassword.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
auth_Authorization = auth.recoverPassword({code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_EMPTY|The provided code is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_EMPTY|The provided code is empty|
diff --git a/old_docs/API_docs_v70/methods/auth_requestPasswordRecovery.md b/old_docs/API_docs_v70/methods/auth_requestPasswordRecovery.md
index 1864bbb0..b6ad57ba 100644
--- a/old_docs/API_docs_v70/methods/auth_requestPasswordRecovery.md
+++ b/old_docs/API_docs_v70/methods/auth_requestPasswordRecovery.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
auth_PasswordRecovery = auth.requestPasswordRecovery({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_EMPTY|The provided password is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_EMPTY|The provided password is empty|
diff --git a/old_docs/API_docs_v70/methods/auth_resendCode.md b/old_docs/API_docs_v70/methods/auth_resendCode.md
index ff7868ea..ec730d75 100644
--- a/old_docs/API_docs_v70/methods/auth_resendCode.md
+++ b/old_docs/API_docs_v70/methods/auth_resendCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = auth.resendCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v70/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v70/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v70/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v70/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v70/methods/auth_sendCode.md b/old_docs/API_docs_v70/methods/auth_sendCode.md
index 9afebb55..1e9d1a4e 100644
--- a/old_docs/API_docs_v70/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v70/methods/auth_sendCode.md
@@ -7,8 +7,59 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|allow\_flashcall|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|current\_number|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['allow_flashcall' => Bool, 'phone_number' => 'string', 'current_number' => Bool, 'api_id' => int, 'api_hash' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, api_id=int, api_hash='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v70/methods/auth_sendInvites.md b/old_docs/API_docs_v70/methods/auth_sendInvites.md
index e10c1109..4c11023e 100644
--- a/old_docs/API_docs_v70/methods/auth_sendInvites.md
+++ b/old_docs/API_docs_v70/methods/auth_sendInvites.md
@@ -49,10 +49,10 @@ Bool = auth.sendInvites({phone_numbers={'string'}, message='string', })
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_EMPTY|The provided message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_EMPTY|The provided message is empty|
diff --git a/old_docs/API_docs_v70/methods/auth_signIn.md b/old_docs/API_docs_v70/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v70/methods/auth_signIn.md
+++ b/old_docs/API_docs_v70/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v70/methods/auth_signUp.md b/old_docs/API_docs_v70/methods/auth_signUp.md
index 15960145..31154486 100644
--- a/old_docs/API_docs_v70/methods/auth_signUp.md
+++ b/old_docs/API_docs_v70/methods/auth_signUp.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', phone_code='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v70/methods/bots_answerWebhookJSONQuery.md b/old_docs/API_docs_v70/methods/bots_answerWebhookJSONQuery.md
index ae0fa6d9..f2233514 100644
--- a/old_docs/API_docs_v70/methods/bots_answerWebhookJSONQuery.md
+++ b/old_docs/API_docs_v70/methods/bots_answerWebhookJSONQuery.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = bots.answerWebhookJSONQuery({query_id=long, data=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v70/methods/bots_sendCustomRequest.md b/old_docs/API_docs_v70/methods/bots_sendCustomRequest.md
index c1fd8183..8a6a2df5 100644
--- a/old_docs/API_docs_v70/methods/bots_sendCustomRequest.md
+++ b/old_docs/API_docs_v70/methods/bots_sendCustomRequest.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
DataJSON = bots.sendCustomRequest({custom_method='string', params=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v70/methods/channels_checkUsername.md b/old_docs/API_docs_v70/methods/channels_checkUsername.md
index 483a2f6f..52365d34 100644
--- a/old_docs/API_docs_v70/methods/channels_checkUsername.md
+++ b/old_docs/API_docs_v70/methods/channels_checkUsername.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Bool = channels.checkUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v70/methods/channels_createChannel.md b/old_docs/API_docs_v70/methods/channels_createChannel.md
index b924e6a6..ecaee0ef 100644
--- a/old_docs/API_docs_v70/methods/channels_createChannel.md
+++ b/old_docs/API_docs_v70/methods/channels_createChannel.md
@@ -45,12 +45,12 @@ Or, if you're into Lua:
Updates = channels.createChannel({broadcast=Bool, megagroup=Bool, title='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_TITLE_EMPTY|No chat title provided|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
+|406|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v70/methods/channels_deleteChannel.md b/old_docs/API_docs_v70/methods/channels_deleteChannel.md
index 53a9c23d..1b8d2d48 100644
--- a/old_docs/API_docs_v70/methods/channels_deleteChannel.md
+++ b/old_docs/API_docs_v70/methods/channels_deleteChannel.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Updates = channels.deleteChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v70/methods/channels_deleteMessages.md b/old_docs/API_docs_v70/methods/channels_deleteMessages.md
index f76a9ad1..463ebad0 100644
--- a/old_docs/API_docs_v70/methods/channels_deleteMessages.md
+++ b/old_docs/API_docs_v70/methods/channels_deleteMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_AffectedMessages = channels.deleteMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v70/methods/channels_deleteUserHistory.md b/old_docs/API_docs_v70/methods/channels_deleteUserHistory.md
index 0a4e7d82..33905a7e 100644
--- a/old_docs/API_docs_v70/methods/channels_deleteUserHistory.md
+++ b/old_docs/API_docs_v70/methods/channels_deleteUserHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedHistory = channels.deleteUserHistory({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v70/methods/channels_editAbout.md b/old_docs/API_docs_v70/methods/channels_editAbout.md
index 47111668..d5e090e0 100644
--- a/old_docs/API_docs_v70/methods/channels_editAbout.md
+++ b/old_docs/API_docs_v70/methods/channels_editAbout.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Bool = channels.editAbout({channel=InputChannel, about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
-|CHAT_ABOUT_TOO_LONG|Chat about too long|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
+|400|CHAT_ABOUT_TOO_LONG|Chat about too long|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v70/methods/channels_editAdmin.md b/old_docs/API_docs_v70/methods/channels_editAdmin.md
index 43858599..edb7cf55 100644
--- a/old_docs/API_docs_v70/methods/channels_editAdmin.md
+++ b/old_docs/API_docs_v70/methods/channels_editAdmin.md
@@ -44,19 +44,19 @@ Or, if you're into Lua:
Updates = channels.editAdmin({channel=InputChannel, user_id=InputUser, admin_rights=ChannelAdminRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ADMINS_TOO_MUCH|There are too many admins|
-|BOT_CHANNELS_NA|Bots can't edit admin privileges|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
-|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ADMINS_TOO_MUCH|There are too many admins|
+|400|BOT_CHANNELS_NA|Bots can't edit admin privileges|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
+|403|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v70/methods/channels_editBanned.md b/old_docs/API_docs_v70/methods/channels_editBanned.md
index cffb653e..1fd5f597 100644
--- a/old_docs/API_docs_v70/methods/channels_editBanned.md
+++ b/old_docs/API_docs_v70/methods/channels_editBanned.md
@@ -44,14 +44,14 @@ Or, if you're into Lua:
Updates = channels.editBanned({channel=InputChannel, user_id=InputUser, banned_rights=ChannelBannedRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ADMIN_INVALID|You're not an admin|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ADMIN_INVALID|You're not an admin|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v70/methods/channels_editPhoto.md b/old_docs/API_docs_v70/methods/channels_editPhoto.md
index bec0ba48..caef32d5 100644
--- a/old_docs/API_docs_v70/methods/channels_editPhoto.md
+++ b/old_docs/API_docs_v70/methods/channels_editPhoto.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editPhoto({channel=InputChannel, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|PHOTO_INVALID|Photo invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|PHOTO_INVALID|Photo invalid|
diff --git a/old_docs/API_docs_v70/methods/channels_editTitle.md b/old_docs/API_docs_v70/methods/channels_editTitle.md
index b5efeb39..d7cb33da 100644
--- a/old_docs/API_docs_v70/methods/channels_editTitle.md
+++ b/old_docs/API_docs_v70/methods/channels_editTitle.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editTitle({channel=InputChannel, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v70/methods/channels_exportInvite.md b/old_docs/API_docs_v70/methods/channels_exportInvite.md
index 0918b3e7..9d578deb 100644
--- a/old_docs/API_docs_v70/methods/channels_exportInvite.md
+++ b/old_docs/API_docs_v70/methods/channels_exportInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ExportedChatInvite = channels.exportInvite({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INVITE_HASH_EXPIRED|The invite link has expired|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
diff --git a/old_docs/API_docs_v70/methods/channels_exportMessageLink.md b/old_docs/API_docs_v70/methods/channels_exportMessageLink.md
index 66cd7584..2e92ee5e 100644
--- a/old_docs/API_docs_v70/methods/channels_exportMessageLink.md
+++ b/old_docs/API_docs_v70/methods/channels_exportMessageLink.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
ExportedMessageLink = channels.exportMessageLink({channel=InputChannel, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v70/methods/channels_getAdminLog.md b/old_docs/API_docs_v70/methods/channels_getAdminLog.md
index 377c7320..adb87748 100644
--- a/old_docs/API_docs_v70/methods/channels_getAdminLog.md
+++ b/old_docs/API_docs_v70/methods/channels_getAdminLog.md
@@ -48,12 +48,12 @@ Or, if you're into Lua:
channels_AdminLogResults = channels.getAdminLog({channel=InputChannel, q='string', events_filter=ChannelAdminLogEventsFilter, admins={InputUser}, max_id=long, min_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v70/methods/channels_getChannels.md b/old_docs/API_docs_v70/methods/channels_getChannels.md
index 78d50641..95d7a188 100644
--- a/old_docs/API_docs_v70/methods/channels_getChannels.md
+++ b/old_docs/API_docs_v70/methods/channels_getChannels.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = channels.getChannels({id={InputChannel}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v70/methods/channels_getFullChannel.md b/old_docs/API_docs_v70/methods/channels_getFullChannel.md
index 45a8ec72..ebd53de4 100644
--- a/old_docs/API_docs_v70/methods/channels_getFullChannel.md
+++ b/old_docs/API_docs_v70/methods/channels_getFullChannel.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->channels->getFullChannel(['channel' => InputChannel, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = channels.getFullChannel({channel=InputChannel, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v70/methods/channels_getMessages.md b/old_docs/API_docs_v70/methods/channels_getMessages.md
index aa85d640..57bcc60f 100644
--- a/old_docs/API_docs_v70/methods/channels_getMessages.md
+++ b/old_docs/API_docs_v70/methods/channels_getMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_Messages = channels.getMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
diff --git a/old_docs/API_docs_v70/methods/channels_getParticipant.md b/old_docs/API_docs_v70/methods/channels_getParticipant.md
index 6633114f..808156fd 100644
--- a/old_docs/API_docs_v70/methods/channels_getParticipant.md
+++ b/old_docs/API_docs_v70/methods/channels_getParticipant.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
channels_ChannelParticipant = channels.getParticipant({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v70/methods/channels_getParticipants.md b/old_docs/API_docs_v70/methods/channels_getParticipants.md
index d4bd8779..21d4a418 100644
--- a/old_docs/API_docs_v70/methods/channels_getParticipants.md
+++ b/old_docs/API_docs_v70/methods/channels_getParticipants.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, filter=ChannelParticipantsFilter, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v70/methods/channels_inviteToChannel.md b/old_docs/API_docs_v70/methods/channels_inviteToChannel.md
index f7093f13..d8c5e88a 100644
--- a/old_docs/API_docs_v70/methods/channels_inviteToChannel.md
+++ b/old_docs/API_docs_v70/methods/channels_inviteToChannel.md
@@ -43,25 +43,25 @@ Or, if you're into Lua:
Updates = channels.inviteToChannel({channel=InputChannel, users={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
-|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_BLOCKED|User blocked|
-|USER_BOT|Bots can only be admins in channels.|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_KICKED|This user was kicked from this supergroup/channel|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
+|400|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_BLOCKED|User blocked|
+|400|USER_BOT|Bots can only be admins in channels.|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_KICKED|This user was kicked from this supergroup/channel|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v70/methods/channels_joinChannel.md b/old_docs/API_docs_v70/methods/channels_joinChannel.md
index b056031a..a4a7c177 100644
--- a/old_docs/API_docs_v70/methods/channels_joinChannel.md
+++ b/old_docs/API_docs_v70/methods/channels_joinChannel.md
@@ -42,15 +42,15 @@ Or, if you're into Lua:
Updates = channels.joinChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
diff --git a/old_docs/API_docs_v70/methods/channels_leaveChannel.md b/old_docs/API_docs_v70/methods/channels_leaveChannel.md
index fdea13ba..6538d443 100644
--- a/old_docs/API_docs_v70/methods/channels_leaveChannel.md
+++ b/old_docs/API_docs_v70/methods/channels_leaveChannel.md
@@ -42,14 +42,14 @@ Or, if you're into Lua:
Updates = channels.leaveChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
-|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
diff --git a/old_docs/API_docs_v70/methods/channels_readHistory.md b/old_docs/API_docs_v70/methods/channels_readHistory.md
index 93dc075f..3532dae0 100644
--- a/old_docs/API_docs_v70/methods/channels_readHistory.md
+++ b/old_docs/API_docs_v70/methods/channels_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readHistory({channel=InputChannel, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v70/methods/channels_reportSpam.md b/old_docs/API_docs_v70/methods/channels_reportSpam.md
index db80676a..7e273cc5 100644
--- a/old_docs/API_docs_v70/methods/channels_reportSpam.md
+++ b/old_docs/API_docs_v70/methods/channels_reportSpam.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
Bool = channels.reportSpam({channel=InputChannel, user_id=InputUser, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
diff --git a/old_docs/API_docs_v70/methods/channels_toggleInvites.md b/old_docs/API_docs_v70/methods/channels_toggleInvites.md
index e5d3fba1..6266d30b 100644
--- a/old_docs/API_docs_v70/methods/channels_toggleInvites.md
+++ b/old_docs/API_docs_v70/methods/channels_toggleInvites.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.toggleInvites({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v70/methods/channels_toggleSignatures.md b/old_docs/API_docs_v70/methods/channels_toggleSignatures.md
index cdfc0fda..f8624946 100644
--- a/old_docs/API_docs_v70/methods/channels_toggleSignatures.md
+++ b/old_docs/API_docs_v70/methods/channels_toggleSignatures.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = channels.toggleSignatures({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v70/methods/channels_updatePinnedMessage.md b/old_docs/API_docs_v70/methods/channels_updatePinnedMessage.md
index 53733a22..37d7c3c0 100644
--- a/old_docs/API_docs_v70/methods/channels_updatePinnedMessage.md
+++ b/old_docs/API_docs_v70/methods/channels_updatePinnedMessage.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = channels.updatePinnedMessage({silent=Bool, channel=InputChannel, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v70/methods/channels_updateUsername.md b/old_docs/API_docs_v70/methods/channels_updateUsername.md
index 677712f9..48d250e6 100644
--- a/old_docs/API_docs_v70/methods/channels_updateUsername.md
+++ b/old_docs/API_docs_v70/methods/channels_updateUsername.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Bool = channels.updateUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_OCCUPIED|The provided username is already occupied|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
diff --git a/old_docs/API_docs_v70/methods/contacts_block.md b/old_docs/API_docs_v70/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v70/methods/contacts_block.md
+++ b/old_docs/API_docs_v70/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v70/methods/contacts_deleteContact.md b/old_docs/API_docs_v70/methods/contacts_deleteContact.md
index ba9569e4..a9321d64 100644
--- a/old_docs/API_docs_v70/methods/contacts_deleteContact.md
+++ b/old_docs/API_docs_v70/methods/contacts_deleteContact.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
contacts_Link = contacts.deleteContact({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v70/methods/contacts_deleteContacts.md b/old_docs/API_docs_v70/methods/contacts_deleteContacts.md
index bfc91fdd..3c8e90f0 100644
--- a/old_docs/API_docs_v70/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v70/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v70/methods/contacts_getStatuses.md b/old_docs/API_docs_v70/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v70/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v70/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v70/methods/contacts_getTopPeers.md b/old_docs/API_docs_v70/methods/contacts_getTopPeers.md
index 4dc13d08..9ad9ab01 100644
--- a/old_docs/API_docs_v70/methods/contacts_getTopPeers.md
+++ b/old_docs/API_docs_v70/methods/contacts_getTopPeers.md
@@ -50,10 +50,10 @@ Or, if you're into Lua:
contacts_TopPeers = contacts.getTopPeers({correspondents=Bool, bots_pm=Bool, bots_inline=Bool, phone_calls=Bool, groups=Bool, channels=Bool, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TYPES_EMPTY|No top peer type was provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TYPES_EMPTY|No top peer type was provided|
diff --git a/old_docs/API_docs_v70/methods/contacts_importCard.md b/old_docs/API_docs_v70/methods/contacts_importCard.md
index 15addde1..ed3d17fe 100644
--- a/old_docs/API_docs_v70/methods/contacts_importCard.md
+++ b/old_docs/API_docs_v70/methods/contacts_importCard.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
User = contacts.importCard({export_card={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|EXPORT_CARD_INVALID|Provided card is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EXPORT_CARD_INVALID|Provided card is invalid|
diff --git a/old_docs/API_docs_v70/methods/contacts_resetTopPeerRating.md b/old_docs/API_docs_v70/methods/contacts_resetTopPeerRating.md
index 43cf1685..787be177 100644
--- a/old_docs/API_docs_v70/methods/contacts_resetTopPeerRating.md
+++ b/old_docs/API_docs_v70/methods/contacts_resetTopPeerRating.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = contacts.resetTopPeerRating({category=TopPeerCategory, peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v70/methods/contacts_resolveUsername.md b/old_docs/API_docs_v70/methods/contacts_resolveUsername.md
index fab56bb1..68f709db 100644
--- a/old_docs/API_docs_v70/methods/contacts_resolveUsername.md
+++ b/old_docs/API_docs_v70/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [contacts\_ResolvedPeer](../types/contacts_ResolvedPeer.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$contacts_ResolvedPeer = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+contacts_ResolvedPeer = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v70/methods/contacts_search.md b/old_docs/API_docs_v70/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v70/methods/contacts_search.md
+++ b/old_docs/API_docs_v70/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v70/methods/contacts_unblock.md b/old_docs/API_docs_v70/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v70/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v70/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v70/methods/help_getCdnConfig.md b/old_docs/API_docs_v70/methods/help_getCdnConfig.md
index 9e047a1d..ba526365 100644
--- a/old_docs/API_docs_v70/methods/help_getCdnConfig.md
+++ b/old_docs/API_docs_v70/methods/help_getCdnConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
CdnConfig = help.getCdnConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v70/methods/help_getConfig.md b/old_docs/API_docs_v70/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v70/methods/help_getConfig.md
+++ b/old_docs/API_docs_v70/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v70/methods/initConnection.md b/old_docs/API_docs_v70/methods/initConnection.md
index 05ba27af..49e2b675 100644
--- a/old_docs/API_docs_v70/methods/initConnection.md
+++ b/old_docs/API_docs_v70/methods/initConnection.md
@@ -49,11 +49,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', system_lang_code='string', lang_pack='string', lang_code='string', query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v70/methods/invokeWithLayer.md b/old_docs/API_docs_v70/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/old_docs/API_docs_v70/methods/invokeWithLayer.md
+++ b/old_docs/API_docs_v70/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v70/methods/langpack_getDifference.md b/old_docs/API_docs_v70/methods/langpack_getDifference.md
index ed7e4028..70295776 100644
--- a/old_docs/API_docs_v70/methods/langpack_getDifference.md
+++ b/old_docs/API_docs_v70/methods/langpack_getDifference.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getDifference({from_version=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v70/methods/langpack_getLangPack.md b/old_docs/API_docs_v70/methods/langpack_getLangPack.md
index 50684fef..de6ab2ab 100644
--- a/old_docs/API_docs_v70/methods/langpack_getLangPack.md
+++ b/old_docs/API_docs_v70/methods/langpack_getLangPack.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getLangPack({lang_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v70/methods/langpack_getLanguages.md b/old_docs/API_docs_v70/methods/langpack_getLanguages.md
index 7ffc0f3b..0b09a845 100644
--- a/old_docs/API_docs_v70/methods/langpack_getLanguages.md
+++ b/old_docs/API_docs_v70/methods/langpack_getLanguages.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_LangPackLanguage = langpack.getLanguages({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v70/methods/langpack_getStrings.md b/old_docs/API_docs_v70/methods/langpack_getStrings.md
index 1101ec91..3276120f 100644
--- a/old_docs/API_docs_v70/methods/langpack_getStrings.md
+++ b/old_docs/API_docs_v70/methods/langpack_getStrings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Vector_of_LangPackString = langpack.getStrings({lang_code='string', keys={'string'}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v70/methods/messages_acceptEncryption.md b/old_docs/API_docs_v70/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v70/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v70/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v70/methods/messages_addChatUser.md b/old_docs/API_docs_v70/methods/messages_addChatUser.md
index bc0d6253..b5e164b2 100644
--- a/old_docs/API_docs_v70/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v70/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
Updates = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v70/methods/messages_checkChatInvite.md b/old_docs/API_docs_v70/methods/messages_checkChatInvite.md
index de28b09b..0d13d55e 100644
--- a/old_docs/API_docs_v70/methods/messages_checkChatInvite.md
+++ b/old_docs/API_docs_v70/methods/messages_checkChatInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ChatInvite = messages.checkChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
diff --git a/old_docs/API_docs_v70/methods/messages_createChat.md b/old_docs/API_docs_v70/methods/messages_createChat.md
index 8f6e9672..b2623f1d 100644
--- a/old_docs/API_docs_v70/methods/messages_createChat.md
+++ b/old_docs/API_docs_v70/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v70/methods/messages_deleteChatUser.md b/old_docs/API_docs_v70/methods/messages_deleteChatUser.md
index 63529571..11b9b220 100644
--- a/old_docs/API_docs_v70/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v70/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v70/methods/messages_deleteHistory.md b/old_docs/API_docs_v70/methods/messages_deleteHistory.md
index 2ade177e..338c2cdf 100644
--- a/old_docs/API_docs_v70/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v70/methods/messages_deleteHistory.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({just_clear=Bool, peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v70/methods/messages_deleteMessages.md b/old_docs/API_docs_v70/methods/messages_deleteMessages.md
index 4c65080a..41517dd0 100644
--- a/old_docs/API_docs_v70/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v70/methods/messages_deleteMessages.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.deleteMessages({revoke=Bool, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v70/methods/messages_discardEncryption.md b/old_docs/API_docs_v70/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v70/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v70/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v70/methods/messages_editChatAdmin.md b/old_docs/API_docs_v70/methods/messages_editChatAdmin.md
index 2b4dc94c..6f6c1376 100644
--- a/old_docs/API_docs_v70/methods/messages_editChatAdmin.md
+++ b/old_docs/API_docs_v70/methods/messages_editChatAdmin.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.editChatAdmin({chat_id=InputPeer, user_id=InputUser, is_admin=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v70/methods/messages_editChatPhoto.md b/old_docs/API_docs_v70/methods/messages_editChatPhoto.md
index 2a82c232..a21a03b9 100644
--- a/old_docs/API_docs_v70/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v70/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Updates = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v70/methods/messages_editChatTitle.md b/old_docs/API_docs_v70/methods/messages_editChatTitle.md
index 2c338ad6..72f78741 100644
--- a/old_docs/API_docs_v70/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v70/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v70/methods/messages_editInlineBotMessage.md b/old_docs/API_docs_v70/methods/messages_editInlineBotMessage.md
index f22642f2..c274cbb9 100644
--- a/old_docs/API_docs_v70/methods/messages_editInlineBotMessage.md
+++ b/old_docs/API_docs_v70/methods/messages_editInlineBotMessage.md
@@ -95,11 +95,11 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
diff --git a/old_docs/API_docs_v70/methods/messages_editMessage.md b/old_docs/API_docs_v70/methods/messages_editMessage.md
index 05fee4b3..d3ce5261 100644
--- a/old_docs/API_docs_v70/methods/messages_editMessage.md
+++ b/old_docs/API_docs_v70/methods/messages_editMessage.md
@@ -96,20 +96,20 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v70/methods/messages_exportChatInvite.md b/old_docs/API_docs_v70/methods/messages_exportChatInvite.md
index f3449e79..bc6272e4 100644
--- a/old_docs/API_docs_v70/methods/messages_exportChatInvite.md
+++ b/old_docs/API_docs_v70/methods/messages_exportChatInvite.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
ExportedChatInvite = messages.exportChatInvite({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v70/methods/messages_forwardMessage.md b/old_docs/API_docs_v70/methods/messages_forwardMessage.md
index c8e0b18d..95f6d2f3 100644
--- a/old_docs/API_docs_v70/methods/messages_forwardMessage.md
+++ b/old_docs/API_docs_v70/methods/messages_forwardMessage.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Updates = messages.forwardMessage({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|YOU_BLOCKED_USER|You blocked this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|YOU_BLOCKED_USER|You blocked this user|
diff --git a/old_docs/API_docs_v70/methods/messages_forwardMessages.md b/old_docs/API_docs_v70/methods/messages_forwardMessages.md
index db772b23..2d751dcb 100644
--- a/old_docs/API_docs_v70/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v70/methods/messages_forwardMessages.md
@@ -47,29 +47,29 @@ Or, if you're into Lua:
Updates = messages.forwardMessages({silent=Bool, background=Bool, with_my_score=Bool, from_peer=InputPeer, id={int}, to_peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v70/methods/messages_getBotCallbackAnswer.md b/old_docs/API_docs_v70/methods/messages_getBotCallbackAnswer.md
index f97fa5b0..3f8cc23b 100644
--- a/old_docs/API_docs_v70/methods/messages_getBotCallbackAnswer.md
+++ b/old_docs/API_docs_v70/methods/messages_getBotCallbackAnswer.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
messages_BotCallbackAnswer = messages.getBotCallbackAnswer({game=Bool, peer=InputPeer, msg_id=int, data='bytes', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v70/methods/messages_getChats.md b/old_docs/API_docs_v70/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/old_docs/API_docs_v70/methods/messages_getChats.md
+++ b/old_docs/API_docs_v70/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v70/methods/messages_getCommonChats.md b/old_docs/API_docs_v70/methods/messages_getCommonChats.md
index 9470a0ee..cff23c3f 100644
--- a/old_docs/API_docs_v70/methods/messages_getCommonChats.md
+++ b/old_docs/API_docs_v70/methods/messages_getCommonChats.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_Chats = messages.getCommonChats({user_id=InputUser, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v70/methods/messages_getDhConfig.md b/old_docs/API_docs_v70/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v70/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v70/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v70/methods/messages_getDialogs.md b/old_docs/API_docs_v70/methods/messages_getDialogs.md
index 28590399..e95ea75b 100644
--- a/old_docs/API_docs_v70/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v70/methods/messages_getDialogs.md
@@ -46,13 +46,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({exclude_pinned=Bool, offset_date=int, offset_id=int, offset_peer=InputPeer, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v70/methods/messages_getDocumentByHash.md b/old_docs/API_docs_v70/methods/messages_getDocumentByHash.md
index 73a235d5..06469c52 100644
--- a/old_docs/API_docs_v70/methods/messages_getDocumentByHash.md
+++ b/old_docs/API_docs_v70/methods/messages_getDocumentByHash.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Document = messages.getDocumentByHash({sha256='bytes', size=int, mime_type='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
diff --git a/old_docs/API_docs_v70/methods/messages_getFullChat.md b/old_docs/API_docs_v70/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v70/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v70/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v70/methods/messages_getGameHighScores.md b/old_docs/API_docs_v70/methods/messages_getGameHighScores.md
index 249e1d09..5c484bbb 100644
--- a/old_docs/API_docs_v70/methods/messages_getGameHighScores.md
+++ b/old_docs/API_docs_v70/methods/messages_getGameHighScores.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
messages_HighScores = messages.getGameHighScores({peer=InputPeer, id=int, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v70/methods/messages_getHistory.md b/old_docs/API_docs_v70/methods/messages_getHistory.md
index ced9753f..68f746ba 100644
--- a/old_docs/API_docs_v70/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v70/methods/messages_getHistory.md
@@ -48,16 +48,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset_id=int, offset_date=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v70/methods/messages_getInlineBotResults.md b/old_docs/API_docs_v70/methods/messages_getInlineBotResults.md
index 1efcb412..17d678b7 100644
--- a/old_docs/API_docs_v70/methods/messages_getInlineBotResults.md
+++ b/old_docs/API_docs_v70/methods/messages_getInlineBotResults.md
@@ -46,13 +46,13 @@ Or, if you're into Lua:
messages_BotResults = messages.getInlineBotResults({bot=InputUser, peer=InputPeer, geo_point=InputGeoPoint, query='string', offset='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
-|BOT_INVALID|This is not a valid bot|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
+|400|BOT_INVALID|This is not a valid bot|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v70/methods/messages_getInlineGameHighScores.md b/old_docs/API_docs_v70/methods/messages_getInlineGameHighScores.md
index e68c6db8..ac33b6b8 100644
--- a/old_docs/API_docs_v70/methods/messages_getInlineGameHighScores.md
+++ b/old_docs/API_docs_v70/methods/messages_getInlineGameHighScores.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_HighScores = messages.getInlineGameHighScores({id=InputBotInlineMessageID, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v70/methods/messages_getMessageEditData.md b/old_docs/API_docs_v70/methods/messages_getMessageEditData.md
index 7f1b7164..b907d78c 100644
--- a/old_docs/API_docs_v70/methods/messages_getMessageEditData.md
+++ b/old_docs/API_docs_v70/methods/messages_getMessageEditData.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_MessageEditData = messages.getMessageEditData({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v70/methods/messages_getMessagesViews.md b/old_docs/API_docs_v70/methods/messages_getMessagesViews.md
index 3d490315..143e568c 100644
--- a/old_docs/API_docs_v70/methods/messages_getMessagesViews.md
+++ b/old_docs/API_docs_v70/methods/messages_getMessagesViews.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
Vector_of_int = messages.getMessagesViews({peer=InputPeer, id={int}, increment=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v70/methods/messages_getPeerDialogs.md b/old_docs/API_docs_v70/methods/messages_getPeerDialogs.md
index 6811001a..0c770183 100644
--- a/old_docs/API_docs_v70/methods/messages_getPeerDialogs.md
+++ b/old_docs/API_docs_v70/methods/messages_getPeerDialogs.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPeerDialogs({peers={InputPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v70/methods/messages_getPeerSettings.md b/old_docs/API_docs_v70/methods/messages_getPeerSettings.md
index 26dafb9b..69032ff5 100644
--- a/old_docs/API_docs_v70/methods/messages_getPeerSettings.md
+++ b/old_docs/API_docs_v70/methods/messages_getPeerSettings.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
PeerSettings = messages.getPeerSettings({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v70/methods/messages_getPinnedDialogs.md b/old_docs/API_docs_v70/methods/messages_getPinnedDialogs.md
index 828d622e..f106098d 100644
--- a/old_docs/API_docs_v70/methods/messages_getPinnedDialogs.md
+++ b/old_docs/API_docs_v70/methods/messages_getPinnedDialogs.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPinnedDialogs({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FOLDER_ID_INVALID|Invalid folder ID|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FOLDER_ID_INVALID|Invalid folder ID|
diff --git a/old_docs/API_docs_v70/methods/messages_getStickerSet.md b/old_docs/API_docs_v70/methods/messages_getStickerSet.md
index 57bce84d..487316cc 100644
--- a/old_docs/API_docs_v70/methods/messages_getStickerSet.md
+++ b/old_docs/API_docs_v70/methods/messages_getStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_StickerSet = messages.getStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v70/methods/messages_getWebPage.md b/old_docs/API_docs_v70/methods/messages_getWebPage.md
index ce51ff41..63ef5e93 100644
--- a/old_docs/API_docs_v70/methods/messages_getWebPage.md
+++ b/old_docs/API_docs_v70/methods/messages_getWebPage.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
WebPage = messages.getWebPage({url='string', hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|WC_CONVERT_URL_INVALID|WC convert URL invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|WC_CONVERT_URL_INVALID|WC convert URL invalid|
diff --git a/old_docs/API_docs_v70/methods/messages_hideReportSpam.md b/old_docs/API_docs_v70/methods/messages_hideReportSpam.md
index c4bf7399..57756d2e 100644
--- a/old_docs/API_docs_v70/methods/messages_hideReportSpam.md
+++ b/old_docs/API_docs_v70/methods/messages_hideReportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.hideReportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v70/methods/messages_importChatInvite.md b/old_docs/API_docs_v70/methods/messages_importChatInvite.md
index 12120867..101b4b19 100644
--- a/old_docs/API_docs_v70/methods/messages_importChatInvite.md
+++ b/old_docs/API_docs_v70/methods/messages_importChatInvite.md
@@ -42,16 +42,16 @@ Or, if you're into Lua:
Updates = messages.importChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v70/methods/messages_installStickerSet.md b/old_docs/API_docs_v70/methods/messages_installStickerSet.md
index 21a57a85..67f2aca0 100644
--- a/old_docs/API_docs_v70/methods/messages_installStickerSet.md
+++ b/old_docs/API_docs_v70/methods/messages_installStickerSet.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_StickerSetInstallResult = messages.installStickerSet({stickerset=InputStickerSet, archived=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v70/methods/messages_migrateChat.md b/old_docs/API_docs_v70/methods/messages_migrateChat.md
index a72f4c11..ee4010eb 100644
--- a/old_docs/API_docs_v70/methods/messages_migrateChat.md
+++ b/old_docs/API_docs_v70/methods/messages_migrateChat.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
Updates = messages.migrateChat({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v70/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v70/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v70/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v70/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v70/methods/messages_readHistory.md b/old_docs/API_docs_v70/methods/messages_readHistory.md
index 2ad5cd09..a7f0eca7 100644
--- a/old_docs/API_docs_v70/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v70/methods/messages_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.readHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v70/methods/messages_receivedQueue.md b/old_docs/API_docs_v70/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v70/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v70/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v70/methods/messages_reorderPinnedDialogs.md b/old_docs/API_docs_v70/methods/messages_reorderPinnedDialogs.md
index d6759a55..d89bf27a 100644
--- a/old_docs/API_docs_v70/methods/messages_reorderPinnedDialogs.md
+++ b/old_docs/API_docs_v70/methods/messages_reorderPinnedDialogs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.reorderPinnedDialogs({force=Bool, order={InputPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v70/methods/messages_reportEncryptedSpam.md b/old_docs/API_docs_v70/methods/messages_reportEncryptedSpam.md
index 9b1e868b..aeac27ef 100644
--- a/old_docs/API_docs_v70/methods/messages_reportEncryptedSpam.md
+++ b/old_docs/API_docs_v70/methods/messages_reportEncryptedSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportEncryptedSpam({peer=InputEncryptedChat, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v70/methods/messages_reportSpam.md b/old_docs/API_docs_v70/methods/messages_reportSpam.md
index e92fba13..dc256e55 100644
--- a/old_docs/API_docs_v70/methods/messages_reportSpam.md
+++ b/old_docs/API_docs_v70/methods/messages_reportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v70/methods/messages_requestEncryption.md b/old_docs/API_docs_v70/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v70/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v70/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v70/methods/messages_saveDraft.md b/old_docs/API_docs_v70/methods/messages_saveDraft.md
index 791ce234..ea6d407e 100644
--- a/old_docs/API_docs_v70/methods/messages_saveDraft.md
+++ b/old_docs/API_docs_v70/methods/messages_saveDraft.md
@@ -89,10 +89,10 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v70/methods/messages_saveGif.md b/old_docs/API_docs_v70/methods/messages_saveGif.md
index f504ff9e..010e17ec 100644
--- a/old_docs/API_docs_v70/methods/messages_saveGif.md
+++ b/old_docs/API_docs_v70/methods/messages_saveGif.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.saveGif({id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|GIF_ID_INVALID|The provided GIF ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|GIF_ID_INVALID|The provided GIF ID is invalid|
diff --git a/old_docs/API_docs_v70/methods/messages_saveRecentSticker.md b/old_docs/API_docs_v70/methods/messages_saveRecentSticker.md
index 98c74efd..072b6fe9 100644
--- a/old_docs/API_docs_v70/methods/messages_saveRecentSticker.md
+++ b/old_docs/API_docs_v70/methods/messages_saveRecentSticker.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.saveRecentSticker({attached=Bool, id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v70/methods/messages_search.md b/old_docs/API_docs_v70/methods/messages_search.md
index 109fac69..5fc8f6ee 100644
--- a/old_docs/API_docs_v70/methods/messages_search.md
+++ b/old_docs/API_docs_v70/methods/messages_search.md
@@ -50,16 +50,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({peer=InputPeer, q='string', from_id=InputUser, filter=MessagesFilter, min_date=int, max_date=int, offset=int, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v70/methods/messages_searchGifs.md b/old_docs/API_docs_v70/methods/messages_searchGifs.md
index 7be4173b..1602d35e 100644
--- a/old_docs/API_docs_v70/methods/messages_searchGifs.md
+++ b/old_docs/API_docs_v70/methods/messages_searchGifs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_FoundGifs = messages.searchGifs({q='string', offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v70/methods/messages_searchGlobal.md b/old_docs/API_docs_v70/methods/messages_searchGlobal.md
index fb38398b..c8da163c 100644
--- a/old_docs/API_docs_v70/methods/messages_searchGlobal.md
+++ b/old_docs/API_docs_v70/methods/messages_searchGlobal.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
messages_Messages = messages.searchGlobal({q='string', offset_date=int, offset_peer=InputPeer, offset_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v70/methods/messages_sendEncrypted.md b/old_docs/API_docs_v70/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v70/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v70/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v70/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v70/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v70/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v70/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v70/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v70/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v70/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v70/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v70/methods/messages_sendInlineBotResult.md b/old_docs/API_docs_v70/methods/messages_sendInlineBotResult.md
index 9ffa02ae..a2b57f4d 100644
--- a/old_docs/API_docs_v70/methods/messages_sendInlineBotResult.md
+++ b/old_docs/API_docs_v70/methods/messages_sendInlineBotResult.md
@@ -48,15 +48,15 @@ Or, if you're into Lua:
Updates = messages.sendInlineBotResult({silent=Bool, background=Bool, clear_draft=Bool, peer=InputPeer, reply_to_msg_id=int, query_id=long, id='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INLINE_RESULT_EXPIRED|The inline query expired|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|QUERY_ID_EMPTY|The query ID is empty|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INLINE_RESULT_EXPIRED|The inline query expired|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|QUERY_ID_EMPTY|The query ID is empty|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v70/methods/messages_sendMedia.md b/old_docs/API_docs_v70/methods/messages_sendMedia.md
index 89dc5572..9bfd0743 100644
--- a/old_docs/API_docs_v70/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v70/methods/messages_sendMedia.md
@@ -54,31 +54,31 @@ Updates = messages.sendMedia({silent=Bool, background=Bool, clear_draft=Bool, pe
You can provide bot API reply_markup objects here.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v70/methods/messages_sendMessage.md b/old_docs/API_docs_v70/methods/messages_sendMessage.md
index 5641ebc3..e0ab305d 100644
--- a/old_docs/API_docs_v70/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v70/methods/messages_sendMessage.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v70/methods/messages_sendScreenshotNotification.md b/old_docs/API_docs_v70/methods/messages_sendScreenshotNotification.md
index 3f5bb36d..4e4e40f5 100644
--- a/old_docs/API_docs_v70/methods/messages_sendScreenshotNotification.md
+++ b/old_docs/API_docs_v70/methods/messages_sendScreenshotNotification.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = messages.sendScreenshotNotification({peer=InputPeer, reply_to_msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v70/methods/messages_setBotCallbackAnswer.md b/old_docs/API_docs_v70/methods/messages_setBotCallbackAnswer.md
index ed058b4f..630ca61c 100644
--- a/old_docs/API_docs_v70/methods/messages_setBotCallbackAnswer.md
+++ b/old_docs/API_docs_v70/methods/messages_setBotCallbackAnswer.md
@@ -52,11 +52,11 @@ Bool = messages.setBotCallbackAnswer({alert=Bool, query_id=long, message='string
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|URL_INVALID|Invalid URL provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|URL_INVALID|Invalid URL provided|
diff --git a/old_docs/API_docs_v70/methods/messages_setBotPrecheckoutResults.md b/old_docs/API_docs_v70/methods/messages_setBotPrecheckoutResults.md
index cc615123..d6e0e61b 100644
--- a/old_docs/API_docs_v70/methods/messages_setBotPrecheckoutResults.md
+++ b/old_docs/API_docs_v70/methods/messages_setBotPrecheckoutResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotPrecheckoutResults({success=Bool, query_id=long, error='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ERROR_TEXT_EMPTY|The provided error message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ERROR_TEXT_EMPTY|The provided error message is empty|
diff --git a/old_docs/API_docs_v70/methods/messages_setBotShippingResults.md b/old_docs/API_docs_v70/methods/messages_setBotShippingResults.md
index f3a86f4f..adc4f64f 100644
--- a/old_docs/API_docs_v70/methods/messages_setBotShippingResults.md
+++ b/old_docs/API_docs_v70/methods/messages_setBotShippingResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotShippingResults({query_id=long, error='string', shipping_options={ShippingOption}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
diff --git a/old_docs/API_docs_v70/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v70/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v70/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v70/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v70/methods/messages_setGameScore.md b/old_docs/API_docs_v70/methods/messages_setGameScore.md
index 548ee889..429b04c6 100644
--- a/old_docs/API_docs_v70/methods/messages_setGameScore.md
+++ b/old_docs/API_docs_v70/methods/messages_setGameScore.md
@@ -47,12 +47,12 @@ Or, if you're into Lua:
Updates = messages.setGameScore({edit_message=Bool, force=Bool, peer=InputPeer, id=int, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v70/methods/messages_setInlineBotResults.md b/old_docs/API_docs_v70/methods/messages_setInlineBotResults.md
index ab388e39..df4c30d4 100644
--- a/old_docs/API_docs_v70/methods/messages_setInlineBotResults.md
+++ b/old_docs/API_docs_v70/methods/messages_setInlineBotResults.md
@@ -48,23 +48,23 @@ Or, if you're into Lua:
Bool = messages.setInlineBotResults({gallery=Bool, private=Bool, query_id=long, results={InputBotInlineResult}, cache_time=int, next_offset='string', switch_pm=InlineBotSwitchPM, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ARTICLE_TITLE_EMPTY|The title of the article is empty|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|PHOTO_INVALID|Photo invalid|
-|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
-|QUERY_ID_INVALID|The query ID is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|RESULT_TYPE_INVALID|Result type invalid|
-|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
-|START_PARAM_INVALID|Start parameter invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ARTICLE_TITLE_EMPTY|The title of the article is empty|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|PHOTO_INVALID|Photo invalid|
+|400|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|RESULT_TYPE_INVALID|Result type invalid|
+|400|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
+|400|START_PARAM_INVALID|Start parameter invalid|
+|403|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v70/methods/messages_setInlineGameScore.md b/old_docs/API_docs_v70/methods/messages_setInlineGameScore.md
index 5eeb1540..62b163d5 100644
--- a/old_docs/API_docs_v70/methods/messages_setInlineGameScore.md
+++ b/old_docs/API_docs_v70/methods/messages_setInlineGameScore.md
@@ -46,11 +46,11 @@ Or, if you're into Lua:
Bool = messages.setInlineGameScore({edit_message=Bool, force=Bool, id=InputBotInlineMessageID, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v70/methods/messages_setTyping.md b/old_docs/API_docs_v70/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v70/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v70/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v70/methods/messages_startBot.md b/old_docs/API_docs_v70/methods/messages_startBot.md
index aa2b2d00..4bf12aa6 100644
--- a/old_docs/API_docs_v70/methods/messages_startBot.md
+++ b/old_docs/API_docs_v70/methods/messages_startBot.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = messages.startBot({bot=InputUser, peer=InputPeer, start_param='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INVALID|This is not a valid bot|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|START_PARAM_EMPTY|The start parameter is empty|
-|START_PARAM_INVALID|Start parameter invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INVALID|This is not a valid bot|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|START_PARAM_EMPTY|The start parameter is empty|
+|400|START_PARAM_INVALID|Start parameter invalid|
diff --git a/old_docs/API_docs_v70/methods/messages_toggleChatAdmins.md b/old_docs/API_docs_v70/methods/messages_toggleChatAdmins.md
index 7851806d..8ea6e65e 100644
--- a/old_docs/API_docs_v70/methods/messages_toggleChatAdmins.md
+++ b/old_docs/API_docs_v70/methods/messages_toggleChatAdmins.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.toggleChatAdmins({chat_id=InputPeer, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v70/methods/messages_toggleDialogPin.md b/old_docs/API_docs_v70/methods/messages_toggleDialogPin.md
index 888f9a25..d44e4abc 100644
--- a/old_docs/API_docs_v70/methods/messages_toggleDialogPin.md
+++ b/old_docs/API_docs_v70/methods/messages_toggleDialogPin.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.toggleDialogPin({pinned=Bool, peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v70/methods/messages_uninstallStickerSet.md b/old_docs/API_docs_v70/methods/messages_uninstallStickerSet.md
index 59abc510..6b7a2006 100644
--- a/old_docs/API_docs_v70/methods/messages_uninstallStickerSet.md
+++ b/old_docs/API_docs_v70/methods/messages_uninstallStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.uninstallStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v70/methods/messages_uploadMedia.md b/old_docs/API_docs_v70/methods/messages_uploadMedia.md
index afc806fe..09fc074c 100644
--- a/old_docs/API_docs_v70/methods/messages_uploadMedia.md
+++ b/old_docs/API_docs_v70/methods/messages_uploadMedia.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
MessageMedia = messages.uploadMedia({peer=InputPeer, media=InputMedia, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v70/methods/payments_getPaymentForm.md b/old_docs/API_docs_v70/methods/payments_getPaymentForm.md
index e8e04f37..4c28121f 100644
--- a/old_docs/API_docs_v70/methods/payments_getPaymentForm.md
+++ b/old_docs/API_docs_v70/methods/payments_getPaymentForm.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentForm = payments.getPaymentForm({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v70/methods/payments_getPaymentReceipt.md b/old_docs/API_docs_v70/methods/payments_getPaymentReceipt.md
index acb1c209..0e2f76a8 100644
--- a/old_docs/API_docs_v70/methods/payments_getPaymentReceipt.md
+++ b/old_docs/API_docs_v70/methods/payments_getPaymentReceipt.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentReceipt = payments.getPaymentReceipt({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v70/methods/payments_sendPaymentForm.md b/old_docs/API_docs_v70/methods/payments_sendPaymentForm.md
index b8fa905d..1910ede8 100644
--- a/old_docs/API_docs_v70/methods/payments_sendPaymentForm.md
+++ b/old_docs/API_docs_v70/methods/payments_sendPaymentForm.md
@@ -45,10 +45,10 @@ Or, if you're into Lua:
payments_PaymentResult = payments.sendPaymentForm({msg_id=int, requested_info_id='string', shipping_option_id='string', credentials=InputPaymentCredentials, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v70/methods/payments_validateRequestedInfo.md b/old_docs/API_docs_v70/methods/payments_validateRequestedInfo.md
index 3b9da7e6..f18e1660 100644
--- a/old_docs/API_docs_v70/methods/payments_validateRequestedInfo.md
+++ b/old_docs/API_docs_v70/methods/payments_validateRequestedInfo.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
payments_ValidatedRequestedInfo = payments.validateRequestedInfo({save=Bool, msg_id=int, info=PaymentRequestedInfo, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v70/methods/phone_acceptCall.md b/old_docs/API_docs_v70/methods/phone_acceptCall.md
index b75ac65b..f5c58f01 100644
--- a/old_docs/API_docs_v70/methods/phone_acceptCall.md
+++ b/old_docs/API_docs_v70/methods/phone_acceptCall.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->acceptCall(['peer' => InputPhoneCall, 'g_b' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.acceptCall({peer=InputPhoneCall, g_b='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
diff --git a/old_docs/API_docs_v70/methods/phone_confirmCall.md b/old_docs/API_docs_v70/methods/phone_confirmCall.md
index 1a75563d..468307cc 100644
--- a/old_docs/API_docs_v70/methods/phone_confirmCall.md
+++ b/old_docs/API_docs_v70/methods/phone_confirmCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->confirmCall(['peer' => InputPhoneCall, 'g_a' => 'bytes', 'key_fingerprint' => long, 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.confirmCall({peer=InputPhoneCall, g_a='bytes', key_fingerprint=long, protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v70/methods/phone_discardCall.md b/old_docs/API_docs_v70/methods/phone_discardCall.md
index e50456eb..ffaa18ea 100644
--- a/old_docs/API_docs_v70/methods/phone_discardCall.md
+++ b/old_docs/API_docs_v70/methods/phone_discardCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|duration|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|reason|[PhoneCallDiscardReason](../types/PhoneCallDiscardReason.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|connection\_id|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [Updates](../types/Updates.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Updates = $MadelineProto->phone->discardCall(['peer' => InputPhoneCall, 'duration' => int, 'reason' => PhoneCallDiscardReason, 'connection_id' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Updates = phone.discardCall({peer=InputPhoneCall, duration=int, reason=PhoneCallDiscardReason, connection_id=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v70/methods/phone_receivedCall.md b/old_docs/API_docs_v70/methods/phone_receivedCall.md
index c43bc8ac..6091424b 100644
--- a/old_docs/API_docs_v70/methods/phone_receivedCall.md
+++ b/old_docs/API_docs_v70/methods/phone_receivedCall.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Bool = phone.receivedCall({peer=InputPhoneCall, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_ALREADY_DECLINED|The call was already declined|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v70/methods/phone_requestCall.md b/old_docs/API_docs_v70/methods/phone_requestCall.md
index 9b8df564..c8e828f2 100644
--- a/old_docs/API_docs_v70/methods/phone_requestCall.md
+++ b/old_docs/API_docs_v70/methods/phone_requestCall.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Optional|
+|g\_a\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->requestCall(['user_id' => InputUser, 'g_a_hash' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.requestCall({user_id=InputUser, g_a_hash='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
+|400|PARTICIPANT_VERSION_OUTDATED|The other participant does not use an up to date telegram client with support for calls|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|403|USER_IS_BLOCKED|You were blocked by this user|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v70/methods/phone_saveCallDebug.md b/old_docs/API_docs_v70/methods/phone_saveCallDebug.md
index 8acbc353..1e793c05 100644
--- a/old_docs/API_docs_v70/methods/phone_saveCallDebug.md
+++ b/old_docs/API_docs_v70/methods/phone_saveCallDebug.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = phone.saveCallDebug({peer=InputPhoneCall, debug=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
-|DATA_JSON_INVALID|The provided JSON data is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|DATA_JSON_INVALID|The provided JSON data is invalid|
diff --git a/old_docs/API_docs_v70/methods/phone_setCallRating.md b/old_docs/API_docs_v70/methods/phone_setCallRating.md
index 9bc6bdd0..9daed209 100644
--- a/old_docs/API_docs_v70/methods/phone_setCallRating.md
+++ b/old_docs/API_docs_v70/methods/phone_setCallRating.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Updates = phone.setCallRating({peer=InputPhoneCall, rating=int, comment='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v70/methods/photos_getUserPhotos.md b/old_docs/API_docs_v70/methods/photos_getUserPhotos.md
index 57f5772b..a01f3180 100644
--- a/old_docs/API_docs_v70/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v70/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v70/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v70/methods/photos_updateProfilePhoto.md
index cca2fe30..f7c91ec6 100644
--- a/old_docs/API_docs_v70/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v70/methods/photos_updateProfilePhoto.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v70/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v70/methods/photos_uploadProfilePhoto.md
index 457bade8..badde2de 100644
--- a/old_docs/API_docs_v70/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v70/methods/photos_uploadProfilePhoto.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v70/methods/stickers_addStickerToSet.md b/old_docs/API_docs_v70/methods/stickers_addStickerToSet.md
index 78e8437c..b1fa2aad 100644
--- a/old_docs/API_docs_v70/methods/stickers_addStickerToSet.md
+++ b/old_docs/API_docs_v70/methods/stickers_addStickerToSet.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.addStickerToSet({stickerset=InputStickerSet, sticker=InputStickerSetItem, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v70/methods/stickers_changeStickerPosition.md b/old_docs/API_docs_v70/methods/stickers_changeStickerPosition.md
index cddc1cbb..98dde67e 100644
--- a/old_docs/API_docs_v70/methods/stickers_changeStickerPosition.md
+++ b/old_docs/API_docs_v70/methods/stickers_changeStickerPosition.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.changeStickerPosition({sticker=InputDocument, position=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/old_docs/API_docs_v70/methods/stickers_createStickerSet.md b/old_docs/API_docs_v70/methods/stickers_createStickerSet.md
index 41e4ad11..741e0ad6 100644
--- a/old_docs/API_docs_v70/methods/stickers_createStickerSet.md
+++ b/old_docs/API_docs_v70/methods/stickers_createStickerSet.md
@@ -46,18 +46,18 @@ Or, if you're into Lua:
messages_StickerSet = stickers.createStickerSet({masks=Bool, user_id=InputUser, title='string', short_name='string', stickers={InputStickerSetItem}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|PACK_SHORT_NAME_INVALID|Short pack name invalid|
-|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|STICKER_EMOJI_INVALID|Sticker emoji invalid|
-|STICKER_FILE_INVALID|Sticker file invalid|
-|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
-|STICKERS_EMPTY|No sticker provided|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|PACK_SHORT_NAME_INVALID|Short pack name invalid|
+|400|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|STICKER_EMOJI_INVALID|Sticker emoji invalid|
+|400|STICKER_FILE_INVALID|Sticker file invalid|
+|400|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
+|400|STICKERS_EMPTY|No sticker provided|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v70/methods/stickers_removeStickerFromSet.md b/old_docs/API_docs_v70/methods/stickers_removeStickerFromSet.md
index ea4621f2..d1fc4339 100644
--- a/old_docs/API_docs_v70/methods/stickers_removeStickerFromSet.md
+++ b/old_docs/API_docs_v70/methods/stickers_removeStickerFromSet.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.removeStickerFromSet({sticker=InputDocument, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/old_docs/API_docs_v70/methods/updates_getChannelDifference.md b/old_docs/API_docs_v70/methods/updates_getChannelDifference.md
index 6fa79529..9735c14a 100644
--- a/old_docs/API_docs_v70/methods/updates_getChannelDifference.md
+++ b/old_docs/API_docs_v70/methods/updates_getChannelDifference.md
@@ -7,8 +7,56 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|force|[Bool](../types/Bool.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|filter|[ChannelMessagesFilter](../types/ChannelMessagesFilter.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_ChannelDifference](../types/updates_ChannelDifference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_ChannelDifference = $MadelineProto->updates->getChannelDifference(['force' => Bool, 'channel' => InputChannel, 'filter' => ChannelMessagesFilter, 'pts' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_ChannelDifference = updates.getChannelDifference({force=Bool, channel=InputChannel, filter=ChannelMessagesFilter, pts=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|400|RANGES_INVALID|Invalid range provided|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v70/methods/updates_getDifference.md b/old_docs/API_docs_v70/methods/updates_getDifference.md
index 33e7d7f2..bcfac4e2 100644
--- a/old_docs/API_docs_v70/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v70/methods/updates_getDifference.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|pts\_total\_limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'pts_total_limit' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, pts_total_limit=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v70/methods/updates_getState.md b/old_docs/API_docs_v70/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v70/methods/updates_getState.md
+++ b/old_docs/API_docs_v70/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v70/methods/upload_getCdnFile.md b/old_docs/API_docs_v70/methods/upload_getCdnFile.md
index 5e5b3f43..be9ad311 100644
--- a/old_docs/API_docs_v70/methods/upload_getCdnFile.md
+++ b/old_docs/API_docs_v70/methods/upload_getCdnFile.md
@@ -7,8 +7,40 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_CdnFile](../types/upload_CdnFile.md)
+
+### Can bots use this method: **NO**
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_CdnFile = $MadelineProto->upload->getCdnFile(['file_token' => 'bytes', 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_CdnFile = upload.getCdnFile({file_token='bytes', offset=int, limit=int, })
+```
+
diff --git a/old_docs/API_docs_v70/methods/upload_getCdnFileHashes.md b/old_docs/API_docs_v70/methods/upload_getCdnFileHashes.md
index ea6a8e75..4c7c341a 100644
--- a/old_docs/API_docs_v70/methods/upload_getCdnFileHashes.md
+++ b/old_docs/API_docs_v70/methods/upload_getCdnFileHashes.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Vector\_of\_CdnFileHash](../types/CdnFileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_CdnFileHash = $MadelineProto->upload->getCdnFileHashes(['file_token' => 'bytes', 'offset' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_CdnFileHash = upload.getCdnFileHashes({file_token='bytes', offset=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/old_docs/API_docs_v70/methods/upload_getFile.md b/old_docs/API_docs_v70/methods/upload_getFile.md
index c72e6090..d8b433d6 100644
--- a/old_docs/API_docs_v70/methods/upload_getFile.md
+++ b/old_docs/API_docs_v70/methods/upload_getFile.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v70/methods/upload_getWebFile.md b/old_docs/API_docs_v70/methods/upload_getWebFile.md
index 21179a66..7b63f96c 100644
--- a/old_docs/API_docs_v70/methods/upload_getWebFile.md
+++ b/old_docs/API_docs_v70/methods/upload_getWebFile.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
upload_WebFile = upload.getWebFile({location=InputWebFileLocation, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LOCATION_INVALID|The provided location is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LOCATION_INVALID|The provided location is invalid|
diff --git a/old_docs/API_docs_v70/methods/upload_reuploadCdnFile.md b/old_docs/API_docs_v70/methods/upload_reuploadCdnFile.md
index cc20d5e3..ef42f7b4 100644
--- a/old_docs/API_docs_v70/methods/upload_reuploadCdnFile.md
+++ b/old_docs/API_docs_v70/methods/upload_reuploadCdnFile.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|request\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Vector\_of\_CdnFileHash](../types/CdnFileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_CdnFileHash = $MadelineProto->upload->reuploadCdnFile(['file_token' => 'bytes', 'request_token' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_CdnFileHash = upload.reuploadCdnFile({file_token='bytes', request_token='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/old_docs/API_docs_v70/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v70/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v70/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v70/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v70/methods/upload_saveFilePart.md b/old_docs/API_docs_v70/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v70/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v70/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v70/methods/users_getFullUser.md b/old_docs/API_docs_v70/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v70/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v70/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v70/methods/users_getUsers.md b/old_docs/API_docs_v70/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v70/methods/users_getUsers.md
+++ b/old_docs/API_docs_v70/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v71/methods/README.md b/old_docs/API_docs_v71/methods/README.md
index e58274a4..a161eab6 100644
--- a/old_docs/API_docs_v71/methods/README.md
+++ b/old_docs/API_docs_v71/methods/README.md
@@ -30,425 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Add a sticker set: messages.installStickerSet
-
-* Add a sticker to favorites: messages.faveSticker
-
-* Add a sticker to recent stickers: messages.saveRecentSticker
-
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add phone number as contact: contacts.importContacts
-
-* Add sticker to stickerset: stickers.addStickerToSet
-
-* Add users to channel/supergroup: channels.inviteToChannel
-
-* Allow or disallow any user to invite users to this channel/supergroup: channels.toggleInvites
-
-* Block a user: contacts.block
-
-* Bots only: send payment form: payments.sendPaymentForm
-
-* Bots only: set precheckout results: messages.setBotPrecheckoutResults
-
-* Bots only: set shipping results: messages.setBotShippingResults
-
-* Bots only: set the callback answer (after a button was clicked): messages.setBotCallbackAnswer
-
-* Bots only: set the results of an inline query: messages.setInlineBotResults
-
-* Call inline bot: messages.getInlineBotResults
-
-* Change notification settings: account.updateNotifySettings
-
-* Change sticker position in photo: stickers.changeStickerPosition
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if about to edit a message or a media caption: messages.getMessageEditData
-
-* Check if an invitation link is valid: messages.checkChatInvite
-
-* Check if this phone number is registered on telegram: auth.checkPhone
-
-* Check if this username is available: account.checkUsername
-
-* Check if this username is free and can be assigned to a channel/supergroup: channels.checkUsername
-
-* Clear all recent stickers: messages.clearRecentStickers
-
-* Clear saved payments info: payments.clearSavedInfo
-
-* Confirm this phone number is associated to this account, obtain phone_code_hash from sendConfirmPhoneCode: account.confirmPhone
-
-* Convert chat to supergroup: messages.migrateChat
-
-* Create a chat (not supergroup): messages.createChat
-
-* Create channel/supergroup: channels.createChannel
-
-* Create stickerset: stickers.createStickerSet
-
-* Delete a certain session: account.resetAuthorization
-
-* Delete a channel/supergroup: channels.deleteChannel
-
-* Delete a contact: contacts.deleteContact
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete all messages of a user in a channel/supergroup: channels.deleteUserHistory
-
-* Delete all temporary authorization keys except the ones provided: auth.dropTempAuthKeys
-
-* Delete channel/supergroup messages: channels.deleteMessages
-
-* Delete chat history: messages.deleteHistory
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete this account: account.deleteAccount
-
-* Destroy current authorization key: destroy_auth_key
-
-* Destroy the current MTProto session: destroy_session
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Do not send answer to provided request: rpc_drop_answer
-
-* Download a file through telegram: upload.getWebFile
-
-* Edit a message: messages.editMessage
-
-* Edit a sent inline message: messages.editInlineBotMessage
-
-* Edit admin permissions of a user in a channel/supergroup: channels.editAdmin
-
-* Edit admin permissions: messages.editChatAdmin
-
-* Edit the about text of a channel/supergroup: channels.editAbout
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the photo of a supergroup/channel: channels.editPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Edit the title of a supergroup/channel: channels.editTitle
-
-* Enable all users are admins in normal groups (not supergroups): messages.toggleChatAdmins
-
-* Export chat invite : messages.exportChatInvite
-
-* Export contact as card: contacts.exportCard
-
-* Export the invite link of a channel: channels.exportInvite
-
-* Forward message: messages.forwardMessage
-
-* Forward messages: messages.forwardMessages
-
-* Get CDN configuration: help.getCdnConfig
-
-* Get a stickerset: messages.getStickerSet
-
-* Get account TTL: account.getAccountTTL
-
-* Get admin log of a channel/supergroup: channels.getAdminLog
-
-* Get all archived stickers: messages.getArchivedStickers
-
-* Get all chats (not supergroups or channels): messages.getAllChats
-
-* Get all contacts: contacts.getContacts
-
-* Get all logged-in authorizations: account.getAuthorizations
-
-* Get all message drafts: messages.getAllDrafts
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get all supergroups/channels where you're admin: channels.getAdminedPublicChannels
-
-* Get and increase message views: messages.getMessagesViews
-
-* Get available languages: langpack.getLanguages
-
-* Get blocked users: contacts.getBlocked
-
-* Get call configuration: phone.getCallConfig
-
-* Get channel/supergroup messages: channels.getMessages
-
-* Get channel/supergroup participants (you should use `$MadelineProto->get_pwr_chat($id)` instead): channels.getParticipants
-
-* Get chats in common with a user: messages.getCommonChats
-
-* Get dialog info of peers: messages.getPeerDialogs
-
-* Get document by SHA256 hash: messages.getDocumentByHash
-
-* Get favorite stickers: messages.getFavedStickers
-
-* Get featured stickers: messages.getFeaturedStickers
-
-* Get future salts: get_future_salts
-
-* Get high scores of a game sent in an inline message: messages.getInlineGameHighScores
-
-* Get high scores of a game: messages.getGameHighScores
-
-* Get info about a certain channel/supergroup participant: channels.getParticipant
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about multiple channels/supergroups: channels.getChannels
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get invitation text: help.getInviteText
-
-* Get language pack strings: langpack.getStrings
-
-* Get language pack updates: langpack.getDifference
-
-* Get language pack: langpack.getLangPack
-
-* Get masks: messages.getMaskStickers
-
-* Get messages: messages.getMessages
-
-* Get most used chats: contacts.getTopPeers
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get payment form: payments.getPaymentForm
-
-* Get payment receipt: payments.getPaymentReceipt
-
-* Get pinned dialogs: messages.getPinnedDialogs
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get recent stickers: messages.getRecentStickers
-
-* Get saved gifs: messages.getSavedGifs
-
-* Get saved payments info: payments.getSavedInfo
-
-* Get server configuration: help.getConfig
-
-* Get stickers attachable to images: messages.getAttachedStickers
-
-* Get temporary password for buying products through bots: account.getTmpPassword
-
-* Get terms of service: help.getTermsOfService
-
-* Get the callback answer of a bot (after clicking a button): messages.getBotCallbackAnswer
-
-* Get the changelog of this app: help.getAppChangelog
-
-* Get the current password: account.getPassword
-
-* Get the link of a message in a channel: channels.exportMessageLink
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Get the settings of apeer: messages.getPeerSettings
-
-* Get unread mentions: messages.getUnreadMentions
-
-* Get webpage preview: messages.getWebPage
-
-* Get webpage preview: messages.getWebPagePreview
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Global message search: messages.searchGlobal
-
-* Hide report spam popup: messages.hideReportSpam
-
-* Import card as contact: contacts.importCard
-
-* Import chat invite: messages.importChatInvite
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Invalidate sent phone code: auth.cancelCode
-
-* Invite friends to telegram!: auth.sendInvites
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invoke with method without returning updates in the socket: invokeWithoutUpdates
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Join a channel/supergroup: channels.joinChannel
-
-* Kick or ban a user from a channel/supergroup: channels.editBanned
-
-* Leave a channel/supergroup: channels.leaveChannel
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark channel/supergroup history as read: channels.readHistory
-
-* Mark channel/supergroup messages as read: channels.readMessageContents
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Mark new featured stickers as read: messages.readFeaturedStickers
-
-* Notify server that you received a call (server will refuse all incoming calls until the current call is over): phone.receivedCall
-
-* Pin or unpin dialog: messages.toggleDialogPin
-
-* Pings the server and causes disconection if the same method is not called within ping_disconnect_delay: ping_delay_disconnect
-
-* Pings the server: ping
-
-* Register device for push notifications: account.registerDevice
-
-* Remove a sticker set: messages.uninstallStickerSet
-
-* Remove sticker from stickerset: stickers.removeStickerFromSet
-
-* Reorder pinned dialogs: messages.reorderPinnedDialogs
-
-* Reorder sticker sets: messages.reorderStickerSets
-
-* Report a message in a supergroup/channel for spam: channels.reportSpam
-
-* Report a peer for spam: messages.reportSpam
-
-* Report for spam a secret chat: messages.reportEncryptedSpam
-
-* Report for spam: account.reportPeer
-
-* Requests Diffie-hellman parameters for key exchange: req_DH_params
-
-* Requests PQ for factorization: req_pq
-
-* Resend the SMS verification code: auth.resendCode
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Reset saved contacts: contacts.resetSaved
-
-* Reset top peer rating for a certain category/peer: contacts.resetTopPeerRating
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Save a GIF: messages.saveGif
-
-* Save a message draft: messages.saveDraft
-
-* Save call debugging info: phone.saveCallDebug
-
-* Save developer info for telegram contest: contest.saveDeveloperInfo
-
-* Search contacts: contacts.search
-
-* Search gifs: messages.searchGifs
-
-* Search peers or messages: messages.search
-
-* Send a custom request to the bot API: bots.sendCustomRequest
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send an email to recover the 2FA password: auth.requestPasswordRecovery
-
-* Send confirmation phone code: account.sendConfirmPhoneCode
-
-* Send inline bot result obtained with messages.getInlineBotResults to the chat: messages.sendInlineBotResult
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send screenshot notification: messages.sendScreenshotNotification
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Send webhook request via bot API: bots.answerWebhookJSONQuery
-
-* Set account TTL: account.setAccountTTL
-
-* Set phone call rating: phone.setCallRating
-
-* Set privacy settings: account.setPrivacy
-
-* Set the game score of an inline message: messages.setInlineGameScore
-
-* Set the game score: messages.setGameScore
-
-* Set the pinned message of a channel/supergroup: channels.updatePinnedMessage
-
-* Set the supergroup/channel stickerpack: channels.setStickers
-
-* Set the update status of webhook: help.setBotUpdatesStatus
-
-* Sets client diffie-hellman parameters: set_client_DH_params
-
-* Start a bot: messages.startBot
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Toggle channel signatures: channels.toggleSignatures
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update profile info: account.updateProfile
-
-* Update the username of a supergroup/channel: channels.updateUsername
-
-* Update this user's username: account.updateUsername
-
-* Upload a file without sending it to anyone: messages.uploadMedia
-
-* Upload profile photo: photos.uploadProfilePhoto
-
-* Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
-
-* Validate requested payment info: payments.validateRequestedInfo
-
diff --git a/old_docs/API_docs_v71/methods/account_changePhone.md b/old_docs/API_docs_v71/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/old_docs/API_docs_v71/methods/account_changePhone.md
+++ b/old_docs/API_docs_v71/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v71/methods/account_checkUsername.md b/old_docs/API_docs_v71/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v71/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v71/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v71/methods/account_confirmPhone.md b/old_docs/API_docs_v71/methods/account_confirmPhone.md
index b730c2dc..c114cd20 100644
--- a/old_docs/API_docs_v71/methods/account_confirmPhone.md
+++ b/old_docs/API_docs_v71/methods/account_confirmPhone.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = account.confirmPhone({phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_HASH_INVALID|Code hash invalid|
-|PHONE_CODE_EMPTY|phone_code is missing|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_HASH_INVALID|Code hash invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
diff --git a/old_docs/API_docs_v71/methods/account_getNotifySettings.md b/old_docs/API_docs_v71/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v71/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v71/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v71/methods/account_getPasswordSettings.md b/old_docs/API_docs_v71/methods/account_getPasswordSettings.md
index 8ebb78ee..8f878365 100644
--- a/old_docs/API_docs_v71/methods/account_getPasswordSettings.md
+++ b/old_docs/API_docs_v71/methods/account_getPasswordSettings.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+Get the current 2FA settings
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+### Return type: [account\_PasswordSettings](../types/account_PasswordSettings.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$account_PasswordSettings = $MadelineProto->account->getPasswordSettings(['current_password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+account_PasswordSettings = account.getPasswordSettings({current_password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v71/methods/account_getPrivacy.md b/old_docs/API_docs_v71/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/old_docs/API_docs_v71/methods/account_getPrivacy.md
+++ b/old_docs/API_docs_v71/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v71/methods/account_getTmpPassword.md b/old_docs/API_docs_v71/methods/account_getTmpPassword.md
index fd8314ee..a74d0f5a 100644
--- a/old_docs/API_docs_v71/methods/account_getTmpPassword.md
+++ b/old_docs/API_docs_v71/methods/account_getTmpPassword.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
account_TmpPassword = account.getTmpPassword({password_hash='bytes', period=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_HASH_INVALID|The provided password hash is invalid|
-|TMP_PASSWORD_DISABLED|The temporary password is disabled|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
+|400|TMP_PASSWORD_DISABLED|The temporary password is disabled|
diff --git a/old_docs/API_docs_v71/methods/account_registerDevice.md b/old_docs/API_docs_v71/methods/account_registerDevice.md
index cf16c2a2..82a6cad9 100644
--- a/old_docs/API_docs_v71/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v71/methods/account_registerDevice.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({token_type=int, token='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v71/methods/account_reportPeer.md b/old_docs/API_docs_v71/methods/account_reportPeer.md
index a203c900..87b080eb 100644
--- a/old_docs/API_docs_v71/methods/account_reportPeer.md
+++ b/old_docs/API_docs_v71/methods/account_reportPeer.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.reportPeer({peer=InputPeer, reason=ReportReason, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v71/methods/account_resetAuthorization.md b/old_docs/API_docs_v71/methods/account_resetAuthorization.md
index c950992c..e8e8ecc4 100644
--- a/old_docs/API_docs_v71/methods/account_resetAuthorization.md
+++ b/old_docs/API_docs_v71/methods/account_resetAuthorization.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.resetAuthorization({hash=long, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v71/methods/account_sendChangePhoneCode.md b/old_docs/API_docs_v71/methods/account_sendChangePhoneCode.md
index d5be60ef..08e5e86e 100644
--- a/old_docs/API_docs_v71/methods/account_sendChangePhoneCode.md
+++ b/old_docs/API_docs_v71/methods/account_sendChangePhoneCode.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendChangePhoneCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v71/methods/account_sendConfirmPhoneCode.md b/old_docs/API_docs_v71/methods/account_sendConfirmPhoneCode.md
index 028a1fdc..9fa7b57e 100644
--- a/old_docs/API_docs_v71/methods/account_sendConfirmPhoneCode.md
+++ b/old_docs/API_docs_v71/methods/account_sendConfirmPhoneCode.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendConfirmPhoneCode({allow_flashcall=Bool, hash='string', current_number=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v71/methods/account_setAccountTTL.md b/old_docs/API_docs_v71/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/old_docs/API_docs_v71/methods/account_setAccountTTL.md
+++ b/old_docs/API_docs_v71/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/old_docs/API_docs_v71/methods/account_setPrivacy.md b/old_docs/API_docs_v71/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/old_docs/API_docs_v71/methods/account_setPrivacy.md
+++ b/old_docs/API_docs_v71/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v71/methods/account_unregisterDevice.md b/old_docs/API_docs_v71/methods/account_unregisterDevice.md
index 589f48b0..a184da43 100644
--- a/old_docs/API_docs_v71/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v71/methods/account_unregisterDevice.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v71/methods/account_updateNotifySettings.md b/old_docs/API_docs_v71/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v71/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v71/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v71/methods/account_updatePasswordSettings.md b/old_docs/API_docs_v71/methods/account_updatePasswordSettings.md
index 80f27228..68e5da6d 100644
--- a/old_docs/API_docs_v71/methods/account_updatePasswordSettings.md
+++ b/old_docs/API_docs_v71/methods/account_updatePasswordSettings.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+|new\_settings|[account\_PasswordInputSettings](../types/account_PasswordInputSettings.md) | New 2FA settings | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->account->updatePasswordSettings(['current_password_hash' => 'bytes', 'new_settings' => account_PasswordInputSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = account.updatePasswordSettings({current_password_hash='bytes', new_settings=account_PasswordInputSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EMAIL_UNCONFIRMED|Email unconfirmed|
+|400|EMAIL_UNCONFIRMED_X|The provided email isn't confirmed, X is the length of the verification code that was just sent to the email.|
+|400|NEW_SALT_INVALID|The new salt is invalid|
+|400|NEW_SETTINGS_INVALID|The new settings are invalid|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v71/methods/account_updateProfile.md b/old_docs/API_docs_v71/methods/account_updateProfile.md
index af5b6a0f..0d74c5e5 100644
--- a/old_docs/API_docs_v71/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v71/methods/account_updateProfile.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v71/methods/account_updateStatus.md b/old_docs/API_docs_v71/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v71/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v71/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v71/methods/account_updateUsername.md b/old_docs/API_docs_v71/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v71/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v71/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v71/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v71/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v71/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v71/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v71/methods/auth_cancelCode.md b/old_docs/API_docs_v71/methods/auth_cancelCode.md
index fcbd7713..a69e0118 100644
--- a/old_docs/API_docs_v71/methods/auth_cancelCode.md
+++ b/old_docs/API_docs_v71/methods/auth_cancelCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = auth.cancelCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v71/methods/auth_checkPassword.md b/old_docs/API_docs_v71/methods/auth_checkPassword.md
index 8d76c483..db65cb56 100644
--- a/old_docs/API_docs_v71/methods/auth_checkPassword.md
+++ b/old_docs/API_docs_v71/methods/auth_checkPassword.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->checkPassword(['password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.checkPassword({password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v71/methods/auth_checkPhone.md b/old_docs/API_docs_v71/methods/auth_checkPhone.md
index f3e32365..e974ce7f 100644
--- a/old_docs/API_docs_v71/methods/auth_checkPhone.md
+++ b/old_docs/API_docs_v71/methods/auth_checkPhone.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
auth_CheckedPhone = auth.checkPhone({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v71/methods/auth_exportAuthorization.md b/old_docs/API_docs_v71/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v71/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v71/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v71/methods/auth_importAuthorization.md b/old_docs/API_docs_v71/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v71/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v71/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v71/methods/auth_importBotAuthorization.md b/old_docs/API_docs_v71/methods/auth_importBotAuthorization.md
index 1a98c1b9..98a2f8ca 100644
--- a/old_docs/API_docs_v71/methods/auth_importBotAuthorization.md
+++ b/old_docs/API_docs_v71/methods/auth_importBotAuthorization.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|api\_id|[int](../types/int.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_hash|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|bot\_auth\_token|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importBotAuthorization(['api_id' => int, 'api_hash' => 'string', 'bot_auth_token' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importBotAuthorization({api_id=int, api_hash='string', bot_auth_token='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ACCESS_TOKEN_EXPIRED|Access token expired|
+|400|ACCESS_TOKEN_INVALID|Access token invalid|
+|400|API_ID_INVALID|API ID invalid|
diff --git a/old_docs/API_docs_v71/methods/auth_logOut.md b/old_docs/API_docs_v71/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v71/methods/auth_logOut.md
+++ b/old_docs/API_docs_v71/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v71/methods/auth_recoverPassword.md b/old_docs/API_docs_v71/methods/auth_recoverPassword.md
index 83ff5aed..d4bad9c5 100644
--- a/old_docs/API_docs_v71/methods/auth_recoverPassword.md
+++ b/old_docs/API_docs_v71/methods/auth_recoverPassword.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
auth_Authorization = auth.recoverPassword({code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_EMPTY|The provided code is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_EMPTY|The provided code is empty|
diff --git a/old_docs/API_docs_v71/methods/auth_requestPasswordRecovery.md b/old_docs/API_docs_v71/methods/auth_requestPasswordRecovery.md
index 1864bbb0..b6ad57ba 100644
--- a/old_docs/API_docs_v71/methods/auth_requestPasswordRecovery.md
+++ b/old_docs/API_docs_v71/methods/auth_requestPasswordRecovery.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
auth_PasswordRecovery = auth.requestPasswordRecovery({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_EMPTY|The provided password is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_EMPTY|The provided password is empty|
diff --git a/old_docs/API_docs_v71/methods/auth_resendCode.md b/old_docs/API_docs_v71/methods/auth_resendCode.md
index ff7868ea..ec730d75 100644
--- a/old_docs/API_docs_v71/methods/auth_resendCode.md
+++ b/old_docs/API_docs_v71/methods/auth_resendCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = auth.resendCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v71/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v71/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v71/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v71/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v71/methods/auth_sendCode.md b/old_docs/API_docs_v71/methods/auth_sendCode.md
index 9afebb55..1e9d1a4e 100644
--- a/old_docs/API_docs_v71/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v71/methods/auth_sendCode.md
@@ -7,8 +7,59 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|allow\_flashcall|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|current\_number|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['allow_flashcall' => Bool, 'phone_number' => 'string', 'current_number' => Bool, 'api_id' => int, 'api_hash' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, api_id=int, api_hash='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v71/methods/auth_sendInvites.md b/old_docs/API_docs_v71/methods/auth_sendInvites.md
index e10c1109..4c11023e 100644
--- a/old_docs/API_docs_v71/methods/auth_sendInvites.md
+++ b/old_docs/API_docs_v71/methods/auth_sendInvites.md
@@ -49,10 +49,10 @@ Bool = auth.sendInvites({phone_numbers={'string'}, message='string', })
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_EMPTY|The provided message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_EMPTY|The provided message is empty|
diff --git a/old_docs/API_docs_v71/methods/auth_signIn.md b/old_docs/API_docs_v71/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v71/methods/auth_signIn.md
+++ b/old_docs/API_docs_v71/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v71/methods/auth_signUp.md b/old_docs/API_docs_v71/methods/auth_signUp.md
index 15960145..31154486 100644
--- a/old_docs/API_docs_v71/methods/auth_signUp.md
+++ b/old_docs/API_docs_v71/methods/auth_signUp.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', phone_code='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v71/methods/bots_answerWebhookJSONQuery.md b/old_docs/API_docs_v71/methods/bots_answerWebhookJSONQuery.md
index ae0fa6d9..f2233514 100644
--- a/old_docs/API_docs_v71/methods/bots_answerWebhookJSONQuery.md
+++ b/old_docs/API_docs_v71/methods/bots_answerWebhookJSONQuery.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = bots.answerWebhookJSONQuery({query_id=long, data=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v71/methods/bots_sendCustomRequest.md b/old_docs/API_docs_v71/methods/bots_sendCustomRequest.md
index c1fd8183..8a6a2df5 100644
--- a/old_docs/API_docs_v71/methods/bots_sendCustomRequest.md
+++ b/old_docs/API_docs_v71/methods/bots_sendCustomRequest.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
DataJSON = bots.sendCustomRequest({custom_method='string', params=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v71/methods/channels_checkUsername.md b/old_docs/API_docs_v71/methods/channels_checkUsername.md
index 483a2f6f..52365d34 100644
--- a/old_docs/API_docs_v71/methods/channels_checkUsername.md
+++ b/old_docs/API_docs_v71/methods/channels_checkUsername.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Bool = channels.checkUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v71/methods/channels_createChannel.md b/old_docs/API_docs_v71/methods/channels_createChannel.md
index b924e6a6..ecaee0ef 100644
--- a/old_docs/API_docs_v71/methods/channels_createChannel.md
+++ b/old_docs/API_docs_v71/methods/channels_createChannel.md
@@ -45,12 +45,12 @@ Or, if you're into Lua:
Updates = channels.createChannel({broadcast=Bool, megagroup=Bool, title='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_TITLE_EMPTY|No chat title provided|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
+|406|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v71/methods/channels_deleteChannel.md b/old_docs/API_docs_v71/methods/channels_deleteChannel.md
index 53a9c23d..1b8d2d48 100644
--- a/old_docs/API_docs_v71/methods/channels_deleteChannel.md
+++ b/old_docs/API_docs_v71/methods/channels_deleteChannel.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Updates = channels.deleteChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v71/methods/channels_deleteMessages.md b/old_docs/API_docs_v71/methods/channels_deleteMessages.md
index f76a9ad1..463ebad0 100644
--- a/old_docs/API_docs_v71/methods/channels_deleteMessages.md
+++ b/old_docs/API_docs_v71/methods/channels_deleteMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_AffectedMessages = channels.deleteMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v71/methods/channels_deleteUserHistory.md b/old_docs/API_docs_v71/methods/channels_deleteUserHistory.md
index 0a4e7d82..33905a7e 100644
--- a/old_docs/API_docs_v71/methods/channels_deleteUserHistory.md
+++ b/old_docs/API_docs_v71/methods/channels_deleteUserHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedHistory = channels.deleteUserHistory({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v71/methods/channels_editAbout.md b/old_docs/API_docs_v71/methods/channels_editAbout.md
index 47111668..d5e090e0 100644
--- a/old_docs/API_docs_v71/methods/channels_editAbout.md
+++ b/old_docs/API_docs_v71/methods/channels_editAbout.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Bool = channels.editAbout({channel=InputChannel, about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
-|CHAT_ABOUT_TOO_LONG|Chat about too long|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
+|400|CHAT_ABOUT_TOO_LONG|Chat about too long|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v71/methods/channels_editAdmin.md b/old_docs/API_docs_v71/methods/channels_editAdmin.md
index 43858599..edb7cf55 100644
--- a/old_docs/API_docs_v71/methods/channels_editAdmin.md
+++ b/old_docs/API_docs_v71/methods/channels_editAdmin.md
@@ -44,19 +44,19 @@ Or, if you're into Lua:
Updates = channels.editAdmin({channel=InputChannel, user_id=InputUser, admin_rights=ChannelAdminRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ADMINS_TOO_MUCH|There are too many admins|
-|BOT_CHANNELS_NA|Bots can't edit admin privileges|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
-|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ADMINS_TOO_MUCH|There are too many admins|
+|400|BOT_CHANNELS_NA|Bots can't edit admin privileges|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
+|403|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v71/methods/channels_editBanned.md b/old_docs/API_docs_v71/methods/channels_editBanned.md
index cffb653e..1fd5f597 100644
--- a/old_docs/API_docs_v71/methods/channels_editBanned.md
+++ b/old_docs/API_docs_v71/methods/channels_editBanned.md
@@ -44,14 +44,14 @@ Or, if you're into Lua:
Updates = channels.editBanned({channel=InputChannel, user_id=InputUser, banned_rights=ChannelBannedRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ADMIN_INVALID|You're not an admin|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ADMIN_INVALID|You're not an admin|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v71/methods/channels_editPhoto.md b/old_docs/API_docs_v71/methods/channels_editPhoto.md
index bec0ba48..caef32d5 100644
--- a/old_docs/API_docs_v71/methods/channels_editPhoto.md
+++ b/old_docs/API_docs_v71/methods/channels_editPhoto.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editPhoto({channel=InputChannel, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|PHOTO_INVALID|Photo invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|PHOTO_INVALID|Photo invalid|
diff --git a/old_docs/API_docs_v71/methods/channels_editTitle.md b/old_docs/API_docs_v71/methods/channels_editTitle.md
index b5efeb39..d7cb33da 100644
--- a/old_docs/API_docs_v71/methods/channels_editTitle.md
+++ b/old_docs/API_docs_v71/methods/channels_editTitle.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editTitle({channel=InputChannel, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v71/methods/channels_exportInvite.md b/old_docs/API_docs_v71/methods/channels_exportInvite.md
index 0918b3e7..9d578deb 100644
--- a/old_docs/API_docs_v71/methods/channels_exportInvite.md
+++ b/old_docs/API_docs_v71/methods/channels_exportInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ExportedChatInvite = channels.exportInvite({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INVITE_HASH_EXPIRED|The invite link has expired|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
diff --git a/old_docs/API_docs_v71/methods/channels_exportMessageLink.md b/old_docs/API_docs_v71/methods/channels_exportMessageLink.md
index 66cd7584..2e92ee5e 100644
--- a/old_docs/API_docs_v71/methods/channels_exportMessageLink.md
+++ b/old_docs/API_docs_v71/methods/channels_exportMessageLink.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
ExportedMessageLink = channels.exportMessageLink({channel=InputChannel, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v71/methods/channels_getAdminLog.md b/old_docs/API_docs_v71/methods/channels_getAdminLog.md
index 377c7320..adb87748 100644
--- a/old_docs/API_docs_v71/methods/channels_getAdminLog.md
+++ b/old_docs/API_docs_v71/methods/channels_getAdminLog.md
@@ -48,12 +48,12 @@ Or, if you're into Lua:
channels_AdminLogResults = channels.getAdminLog({channel=InputChannel, q='string', events_filter=ChannelAdminLogEventsFilter, admins={InputUser}, max_id=long, min_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v71/methods/channels_getChannels.md b/old_docs/API_docs_v71/methods/channels_getChannels.md
index 78d50641..95d7a188 100644
--- a/old_docs/API_docs_v71/methods/channels_getChannels.md
+++ b/old_docs/API_docs_v71/methods/channels_getChannels.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = channels.getChannels({id={InputChannel}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v71/methods/channels_getFullChannel.md b/old_docs/API_docs_v71/methods/channels_getFullChannel.md
index 45a8ec72..ebd53de4 100644
--- a/old_docs/API_docs_v71/methods/channels_getFullChannel.md
+++ b/old_docs/API_docs_v71/methods/channels_getFullChannel.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->channels->getFullChannel(['channel' => InputChannel, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = channels.getFullChannel({channel=InputChannel, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v71/methods/channels_getMessages.md b/old_docs/API_docs_v71/methods/channels_getMessages.md
index aa85d640..57bcc60f 100644
--- a/old_docs/API_docs_v71/methods/channels_getMessages.md
+++ b/old_docs/API_docs_v71/methods/channels_getMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_Messages = channels.getMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
diff --git a/old_docs/API_docs_v71/methods/channels_getParticipant.md b/old_docs/API_docs_v71/methods/channels_getParticipant.md
index 6633114f..808156fd 100644
--- a/old_docs/API_docs_v71/methods/channels_getParticipant.md
+++ b/old_docs/API_docs_v71/methods/channels_getParticipant.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
channels_ChannelParticipant = channels.getParticipant({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v71/methods/channels_getParticipants.md b/old_docs/API_docs_v71/methods/channels_getParticipants.md
index d4bd8779..21d4a418 100644
--- a/old_docs/API_docs_v71/methods/channels_getParticipants.md
+++ b/old_docs/API_docs_v71/methods/channels_getParticipants.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, filter=ChannelParticipantsFilter, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v71/methods/channels_inviteToChannel.md b/old_docs/API_docs_v71/methods/channels_inviteToChannel.md
index f7093f13..d8c5e88a 100644
--- a/old_docs/API_docs_v71/methods/channels_inviteToChannel.md
+++ b/old_docs/API_docs_v71/methods/channels_inviteToChannel.md
@@ -43,25 +43,25 @@ Or, if you're into Lua:
Updates = channels.inviteToChannel({channel=InputChannel, users={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
-|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_BLOCKED|User blocked|
-|USER_BOT|Bots can only be admins in channels.|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_KICKED|This user was kicked from this supergroup/channel|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
+|400|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_BLOCKED|User blocked|
+|400|USER_BOT|Bots can only be admins in channels.|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_KICKED|This user was kicked from this supergroup/channel|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v71/methods/channels_joinChannel.md b/old_docs/API_docs_v71/methods/channels_joinChannel.md
index b056031a..a4a7c177 100644
--- a/old_docs/API_docs_v71/methods/channels_joinChannel.md
+++ b/old_docs/API_docs_v71/methods/channels_joinChannel.md
@@ -42,15 +42,15 @@ Or, if you're into Lua:
Updates = channels.joinChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
diff --git a/old_docs/API_docs_v71/methods/channels_leaveChannel.md b/old_docs/API_docs_v71/methods/channels_leaveChannel.md
index fdea13ba..6538d443 100644
--- a/old_docs/API_docs_v71/methods/channels_leaveChannel.md
+++ b/old_docs/API_docs_v71/methods/channels_leaveChannel.md
@@ -42,14 +42,14 @@ Or, if you're into Lua:
Updates = channels.leaveChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
-|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
diff --git a/old_docs/API_docs_v71/methods/channels_readHistory.md b/old_docs/API_docs_v71/methods/channels_readHistory.md
index 93dc075f..3532dae0 100644
--- a/old_docs/API_docs_v71/methods/channels_readHistory.md
+++ b/old_docs/API_docs_v71/methods/channels_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readHistory({channel=InputChannel, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v71/methods/channels_readMessageContents.md b/old_docs/API_docs_v71/methods/channels_readMessageContents.md
index 80ddf2b0..8cd8c620 100644
--- a/old_docs/API_docs_v71/methods/channels_readMessageContents.md
+++ b/old_docs/API_docs_v71/methods/channels_readMessageContents.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readMessageContents({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v71/methods/channels_reportSpam.md b/old_docs/API_docs_v71/methods/channels_reportSpam.md
index db80676a..7e273cc5 100644
--- a/old_docs/API_docs_v71/methods/channels_reportSpam.md
+++ b/old_docs/API_docs_v71/methods/channels_reportSpam.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
Bool = channels.reportSpam({channel=InputChannel, user_id=InputUser, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
diff --git a/old_docs/API_docs_v71/methods/channels_setStickers.md b/old_docs/API_docs_v71/methods/channels_setStickers.md
index 10cd68bf..c9b95527 100644
--- a/old_docs/API_docs_v71/methods/channels_setStickers.md
+++ b/old_docs/API_docs_v71/methods/channels_setStickers.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.setStickers({channel=InputChannel, stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PARTICIPANTS_TOO_FEW|Not enough participants|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PARTICIPANTS_TOO_FEW|Not enough participants|
diff --git a/old_docs/API_docs_v71/methods/channels_toggleInvites.md b/old_docs/API_docs_v71/methods/channels_toggleInvites.md
index e5d3fba1..6266d30b 100644
--- a/old_docs/API_docs_v71/methods/channels_toggleInvites.md
+++ b/old_docs/API_docs_v71/methods/channels_toggleInvites.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.toggleInvites({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v71/methods/channels_toggleSignatures.md b/old_docs/API_docs_v71/methods/channels_toggleSignatures.md
index cdfc0fda..f8624946 100644
--- a/old_docs/API_docs_v71/methods/channels_toggleSignatures.md
+++ b/old_docs/API_docs_v71/methods/channels_toggleSignatures.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = channels.toggleSignatures({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v71/methods/channels_updatePinnedMessage.md b/old_docs/API_docs_v71/methods/channels_updatePinnedMessage.md
index 53733a22..37d7c3c0 100644
--- a/old_docs/API_docs_v71/methods/channels_updatePinnedMessage.md
+++ b/old_docs/API_docs_v71/methods/channels_updatePinnedMessage.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = channels.updatePinnedMessage({silent=Bool, channel=InputChannel, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v71/methods/channels_updateUsername.md b/old_docs/API_docs_v71/methods/channels_updateUsername.md
index 677712f9..48d250e6 100644
--- a/old_docs/API_docs_v71/methods/channels_updateUsername.md
+++ b/old_docs/API_docs_v71/methods/channels_updateUsername.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Bool = channels.updateUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_OCCUPIED|The provided username is already occupied|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
diff --git a/old_docs/API_docs_v71/methods/contacts_block.md b/old_docs/API_docs_v71/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v71/methods/contacts_block.md
+++ b/old_docs/API_docs_v71/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v71/methods/contacts_deleteContact.md b/old_docs/API_docs_v71/methods/contacts_deleteContact.md
index ba9569e4..a9321d64 100644
--- a/old_docs/API_docs_v71/methods/contacts_deleteContact.md
+++ b/old_docs/API_docs_v71/methods/contacts_deleteContact.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
contacts_Link = contacts.deleteContact({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v71/methods/contacts_deleteContacts.md b/old_docs/API_docs_v71/methods/contacts_deleteContacts.md
index bfc91fdd..3c8e90f0 100644
--- a/old_docs/API_docs_v71/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v71/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v71/methods/contacts_getStatuses.md b/old_docs/API_docs_v71/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v71/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v71/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v71/methods/contacts_getTopPeers.md b/old_docs/API_docs_v71/methods/contacts_getTopPeers.md
index 4dc13d08..9ad9ab01 100644
--- a/old_docs/API_docs_v71/methods/contacts_getTopPeers.md
+++ b/old_docs/API_docs_v71/methods/contacts_getTopPeers.md
@@ -50,10 +50,10 @@ Or, if you're into Lua:
contacts_TopPeers = contacts.getTopPeers({correspondents=Bool, bots_pm=Bool, bots_inline=Bool, phone_calls=Bool, groups=Bool, channels=Bool, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TYPES_EMPTY|No top peer type was provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TYPES_EMPTY|No top peer type was provided|
diff --git a/old_docs/API_docs_v71/methods/contacts_importCard.md b/old_docs/API_docs_v71/methods/contacts_importCard.md
index 15addde1..ed3d17fe 100644
--- a/old_docs/API_docs_v71/methods/contacts_importCard.md
+++ b/old_docs/API_docs_v71/methods/contacts_importCard.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
User = contacts.importCard({export_card={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|EXPORT_CARD_INVALID|Provided card is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EXPORT_CARD_INVALID|Provided card is invalid|
diff --git a/old_docs/API_docs_v71/methods/contacts_resetTopPeerRating.md b/old_docs/API_docs_v71/methods/contacts_resetTopPeerRating.md
index 43cf1685..787be177 100644
--- a/old_docs/API_docs_v71/methods/contacts_resetTopPeerRating.md
+++ b/old_docs/API_docs_v71/methods/contacts_resetTopPeerRating.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = contacts.resetTopPeerRating({category=TopPeerCategory, peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v71/methods/contacts_resolveUsername.md b/old_docs/API_docs_v71/methods/contacts_resolveUsername.md
index fab56bb1..68f709db 100644
--- a/old_docs/API_docs_v71/methods/contacts_resolveUsername.md
+++ b/old_docs/API_docs_v71/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [contacts\_ResolvedPeer](../types/contacts_ResolvedPeer.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$contacts_ResolvedPeer = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+contacts_ResolvedPeer = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v71/methods/contacts_search.md b/old_docs/API_docs_v71/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v71/methods/contacts_search.md
+++ b/old_docs/API_docs_v71/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v71/methods/contacts_unblock.md b/old_docs/API_docs_v71/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v71/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v71/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v71/methods/help_getCdnConfig.md b/old_docs/API_docs_v71/methods/help_getCdnConfig.md
index 9e047a1d..ba526365 100644
--- a/old_docs/API_docs_v71/methods/help_getCdnConfig.md
+++ b/old_docs/API_docs_v71/methods/help_getCdnConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
CdnConfig = help.getCdnConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v71/methods/help_getConfig.md b/old_docs/API_docs_v71/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v71/methods/help_getConfig.md
+++ b/old_docs/API_docs_v71/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v71/methods/initConnection.md b/old_docs/API_docs_v71/methods/initConnection.md
index 05ba27af..49e2b675 100644
--- a/old_docs/API_docs_v71/methods/initConnection.md
+++ b/old_docs/API_docs_v71/methods/initConnection.md
@@ -49,11 +49,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', system_lang_code='string', lang_pack='string', lang_code='string', query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v71/methods/invokeWithLayer.md b/old_docs/API_docs_v71/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/old_docs/API_docs_v71/methods/invokeWithLayer.md
+++ b/old_docs/API_docs_v71/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v71/methods/langpack_getDifference.md b/old_docs/API_docs_v71/methods/langpack_getDifference.md
index ed7e4028..70295776 100644
--- a/old_docs/API_docs_v71/methods/langpack_getDifference.md
+++ b/old_docs/API_docs_v71/methods/langpack_getDifference.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getDifference({from_version=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v71/methods/langpack_getLangPack.md b/old_docs/API_docs_v71/methods/langpack_getLangPack.md
index 50684fef..de6ab2ab 100644
--- a/old_docs/API_docs_v71/methods/langpack_getLangPack.md
+++ b/old_docs/API_docs_v71/methods/langpack_getLangPack.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getLangPack({lang_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v71/methods/langpack_getLanguages.md b/old_docs/API_docs_v71/methods/langpack_getLanguages.md
index 7ffc0f3b..0b09a845 100644
--- a/old_docs/API_docs_v71/methods/langpack_getLanguages.md
+++ b/old_docs/API_docs_v71/methods/langpack_getLanguages.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_LangPackLanguage = langpack.getLanguages({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v71/methods/langpack_getStrings.md b/old_docs/API_docs_v71/methods/langpack_getStrings.md
index 1101ec91..3276120f 100644
--- a/old_docs/API_docs_v71/methods/langpack_getStrings.md
+++ b/old_docs/API_docs_v71/methods/langpack_getStrings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Vector_of_LangPackString = langpack.getStrings({lang_code='string', keys={'string'}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v71/methods/messages_acceptEncryption.md b/old_docs/API_docs_v71/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v71/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v71/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v71/methods/messages_addChatUser.md b/old_docs/API_docs_v71/methods/messages_addChatUser.md
index bc0d6253..b5e164b2 100644
--- a/old_docs/API_docs_v71/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v71/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
Updates = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v71/methods/messages_checkChatInvite.md b/old_docs/API_docs_v71/methods/messages_checkChatInvite.md
index de28b09b..0d13d55e 100644
--- a/old_docs/API_docs_v71/methods/messages_checkChatInvite.md
+++ b/old_docs/API_docs_v71/methods/messages_checkChatInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ChatInvite = messages.checkChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
diff --git a/old_docs/API_docs_v71/methods/messages_createChat.md b/old_docs/API_docs_v71/methods/messages_createChat.md
index 8f6e9672..b2623f1d 100644
--- a/old_docs/API_docs_v71/methods/messages_createChat.md
+++ b/old_docs/API_docs_v71/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v71/methods/messages_deleteChatUser.md b/old_docs/API_docs_v71/methods/messages_deleteChatUser.md
index 63529571..11b9b220 100644
--- a/old_docs/API_docs_v71/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v71/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v71/methods/messages_deleteHistory.md b/old_docs/API_docs_v71/methods/messages_deleteHistory.md
index 2ade177e..338c2cdf 100644
--- a/old_docs/API_docs_v71/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v71/methods/messages_deleteHistory.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({just_clear=Bool, peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v71/methods/messages_deleteMessages.md b/old_docs/API_docs_v71/methods/messages_deleteMessages.md
index 4c65080a..41517dd0 100644
--- a/old_docs/API_docs_v71/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v71/methods/messages_deleteMessages.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.deleteMessages({revoke=Bool, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v71/methods/messages_discardEncryption.md b/old_docs/API_docs_v71/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v71/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v71/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v71/methods/messages_editChatAdmin.md b/old_docs/API_docs_v71/methods/messages_editChatAdmin.md
index 2b4dc94c..6f6c1376 100644
--- a/old_docs/API_docs_v71/methods/messages_editChatAdmin.md
+++ b/old_docs/API_docs_v71/methods/messages_editChatAdmin.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.editChatAdmin({chat_id=InputPeer, user_id=InputUser, is_admin=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v71/methods/messages_editChatPhoto.md b/old_docs/API_docs_v71/methods/messages_editChatPhoto.md
index 2a82c232..a21a03b9 100644
--- a/old_docs/API_docs_v71/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v71/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Updates = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v71/methods/messages_editChatTitle.md b/old_docs/API_docs_v71/methods/messages_editChatTitle.md
index 2c338ad6..72f78741 100644
--- a/old_docs/API_docs_v71/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v71/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v71/methods/messages_editInlineBotMessage.md b/old_docs/API_docs_v71/methods/messages_editInlineBotMessage.md
index f22642f2..c274cbb9 100644
--- a/old_docs/API_docs_v71/methods/messages_editInlineBotMessage.md
+++ b/old_docs/API_docs_v71/methods/messages_editInlineBotMessage.md
@@ -95,11 +95,11 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
diff --git a/old_docs/API_docs_v71/methods/messages_editMessage.md b/old_docs/API_docs_v71/methods/messages_editMessage.md
index 05fee4b3..d3ce5261 100644
--- a/old_docs/API_docs_v71/methods/messages_editMessage.md
+++ b/old_docs/API_docs_v71/methods/messages_editMessage.md
@@ -96,20 +96,20 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v71/methods/messages_exportChatInvite.md b/old_docs/API_docs_v71/methods/messages_exportChatInvite.md
index f3449e79..bc6272e4 100644
--- a/old_docs/API_docs_v71/methods/messages_exportChatInvite.md
+++ b/old_docs/API_docs_v71/methods/messages_exportChatInvite.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
ExportedChatInvite = messages.exportChatInvite({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v71/methods/messages_faveSticker.md b/old_docs/API_docs_v71/methods/messages_faveSticker.md
index a8b1ab56..9f9f423d 100644
--- a/old_docs/API_docs_v71/methods/messages_faveSticker.md
+++ b/old_docs/API_docs_v71/methods/messages_faveSticker.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.faveSticker({id=InputDocument, unfave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v71/methods/messages_forwardMessage.md b/old_docs/API_docs_v71/methods/messages_forwardMessage.md
index c8e0b18d..95f6d2f3 100644
--- a/old_docs/API_docs_v71/methods/messages_forwardMessage.md
+++ b/old_docs/API_docs_v71/methods/messages_forwardMessage.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Updates = messages.forwardMessage({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|YOU_BLOCKED_USER|You blocked this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|YOU_BLOCKED_USER|You blocked this user|
diff --git a/old_docs/API_docs_v71/methods/messages_forwardMessages.md b/old_docs/API_docs_v71/methods/messages_forwardMessages.md
index db772b23..2d751dcb 100644
--- a/old_docs/API_docs_v71/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v71/methods/messages_forwardMessages.md
@@ -47,29 +47,29 @@ Or, if you're into Lua:
Updates = messages.forwardMessages({silent=Bool, background=Bool, with_my_score=Bool, from_peer=InputPeer, id={int}, to_peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v71/methods/messages_getBotCallbackAnswer.md b/old_docs/API_docs_v71/methods/messages_getBotCallbackAnswer.md
index f97fa5b0..3f8cc23b 100644
--- a/old_docs/API_docs_v71/methods/messages_getBotCallbackAnswer.md
+++ b/old_docs/API_docs_v71/methods/messages_getBotCallbackAnswer.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
messages_BotCallbackAnswer = messages.getBotCallbackAnswer({game=Bool, peer=InputPeer, msg_id=int, data='bytes', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v71/methods/messages_getChats.md b/old_docs/API_docs_v71/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/old_docs/API_docs_v71/methods/messages_getChats.md
+++ b/old_docs/API_docs_v71/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v71/methods/messages_getCommonChats.md b/old_docs/API_docs_v71/methods/messages_getCommonChats.md
index 9470a0ee..cff23c3f 100644
--- a/old_docs/API_docs_v71/methods/messages_getCommonChats.md
+++ b/old_docs/API_docs_v71/methods/messages_getCommonChats.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_Chats = messages.getCommonChats({user_id=InputUser, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v71/methods/messages_getDhConfig.md b/old_docs/API_docs_v71/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v71/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v71/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v71/methods/messages_getDialogs.md b/old_docs/API_docs_v71/methods/messages_getDialogs.md
index 28590399..e95ea75b 100644
--- a/old_docs/API_docs_v71/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v71/methods/messages_getDialogs.md
@@ -46,13 +46,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({exclude_pinned=Bool, offset_date=int, offset_id=int, offset_peer=InputPeer, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v71/methods/messages_getDocumentByHash.md b/old_docs/API_docs_v71/methods/messages_getDocumentByHash.md
index 73a235d5..06469c52 100644
--- a/old_docs/API_docs_v71/methods/messages_getDocumentByHash.md
+++ b/old_docs/API_docs_v71/methods/messages_getDocumentByHash.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Document = messages.getDocumentByHash({sha256='bytes', size=int, mime_type='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
diff --git a/old_docs/API_docs_v71/methods/messages_getFullChat.md b/old_docs/API_docs_v71/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v71/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v71/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v71/methods/messages_getGameHighScores.md b/old_docs/API_docs_v71/methods/messages_getGameHighScores.md
index 249e1d09..5c484bbb 100644
--- a/old_docs/API_docs_v71/methods/messages_getGameHighScores.md
+++ b/old_docs/API_docs_v71/methods/messages_getGameHighScores.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
messages_HighScores = messages.getGameHighScores({peer=InputPeer, id=int, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v71/methods/messages_getHistory.md b/old_docs/API_docs_v71/methods/messages_getHistory.md
index ced9753f..68f746ba 100644
--- a/old_docs/API_docs_v71/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v71/methods/messages_getHistory.md
@@ -48,16 +48,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset_id=int, offset_date=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v71/methods/messages_getInlineBotResults.md b/old_docs/API_docs_v71/methods/messages_getInlineBotResults.md
index 1efcb412..17d678b7 100644
--- a/old_docs/API_docs_v71/methods/messages_getInlineBotResults.md
+++ b/old_docs/API_docs_v71/methods/messages_getInlineBotResults.md
@@ -46,13 +46,13 @@ Or, if you're into Lua:
messages_BotResults = messages.getInlineBotResults({bot=InputUser, peer=InputPeer, geo_point=InputGeoPoint, query='string', offset='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
-|BOT_INVALID|This is not a valid bot|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
+|400|BOT_INVALID|This is not a valid bot|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v71/methods/messages_getInlineGameHighScores.md b/old_docs/API_docs_v71/methods/messages_getInlineGameHighScores.md
index e68c6db8..ac33b6b8 100644
--- a/old_docs/API_docs_v71/methods/messages_getInlineGameHighScores.md
+++ b/old_docs/API_docs_v71/methods/messages_getInlineGameHighScores.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_HighScores = messages.getInlineGameHighScores({id=InputBotInlineMessageID, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v71/methods/messages_getMessageEditData.md b/old_docs/API_docs_v71/methods/messages_getMessageEditData.md
index 7f1b7164..b907d78c 100644
--- a/old_docs/API_docs_v71/methods/messages_getMessageEditData.md
+++ b/old_docs/API_docs_v71/methods/messages_getMessageEditData.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_MessageEditData = messages.getMessageEditData({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v71/methods/messages_getMessagesViews.md b/old_docs/API_docs_v71/methods/messages_getMessagesViews.md
index 3d490315..143e568c 100644
--- a/old_docs/API_docs_v71/methods/messages_getMessagesViews.md
+++ b/old_docs/API_docs_v71/methods/messages_getMessagesViews.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
Vector_of_int = messages.getMessagesViews({peer=InputPeer, id={int}, increment=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v71/methods/messages_getPeerDialogs.md b/old_docs/API_docs_v71/methods/messages_getPeerDialogs.md
index 6811001a..0c770183 100644
--- a/old_docs/API_docs_v71/methods/messages_getPeerDialogs.md
+++ b/old_docs/API_docs_v71/methods/messages_getPeerDialogs.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPeerDialogs({peers={InputPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v71/methods/messages_getPeerSettings.md b/old_docs/API_docs_v71/methods/messages_getPeerSettings.md
index 26dafb9b..69032ff5 100644
--- a/old_docs/API_docs_v71/methods/messages_getPeerSettings.md
+++ b/old_docs/API_docs_v71/methods/messages_getPeerSettings.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
PeerSettings = messages.getPeerSettings({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v71/methods/messages_getPinnedDialogs.md b/old_docs/API_docs_v71/methods/messages_getPinnedDialogs.md
index 828d622e..f106098d 100644
--- a/old_docs/API_docs_v71/methods/messages_getPinnedDialogs.md
+++ b/old_docs/API_docs_v71/methods/messages_getPinnedDialogs.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPinnedDialogs({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FOLDER_ID_INVALID|Invalid folder ID|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FOLDER_ID_INVALID|Invalid folder ID|
diff --git a/old_docs/API_docs_v71/methods/messages_getStickerSet.md b/old_docs/API_docs_v71/methods/messages_getStickerSet.md
index 57bce84d..487316cc 100644
--- a/old_docs/API_docs_v71/methods/messages_getStickerSet.md
+++ b/old_docs/API_docs_v71/methods/messages_getStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_StickerSet = messages.getStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v71/methods/messages_getUnreadMentions.md b/old_docs/API_docs_v71/methods/messages_getUnreadMentions.md
index 1fa1f269..923229eb 100644
--- a/old_docs/API_docs_v71/methods/messages_getUnreadMentions.md
+++ b/old_docs/API_docs_v71/methods/messages_getUnreadMentions.md
@@ -47,10 +47,10 @@ Or, if you're into Lua:
messages_Messages = messages.getUnreadMentions({peer=InputPeer, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v71/methods/messages_getWebPage.md b/old_docs/API_docs_v71/methods/messages_getWebPage.md
index ce51ff41..63ef5e93 100644
--- a/old_docs/API_docs_v71/methods/messages_getWebPage.md
+++ b/old_docs/API_docs_v71/methods/messages_getWebPage.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
WebPage = messages.getWebPage({url='string', hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|WC_CONVERT_URL_INVALID|WC convert URL invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|WC_CONVERT_URL_INVALID|WC convert URL invalid|
diff --git a/old_docs/API_docs_v71/methods/messages_hideReportSpam.md b/old_docs/API_docs_v71/methods/messages_hideReportSpam.md
index c4bf7399..57756d2e 100644
--- a/old_docs/API_docs_v71/methods/messages_hideReportSpam.md
+++ b/old_docs/API_docs_v71/methods/messages_hideReportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.hideReportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v71/methods/messages_importChatInvite.md b/old_docs/API_docs_v71/methods/messages_importChatInvite.md
index 12120867..101b4b19 100644
--- a/old_docs/API_docs_v71/methods/messages_importChatInvite.md
+++ b/old_docs/API_docs_v71/methods/messages_importChatInvite.md
@@ -42,16 +42,16 @@ Or, if you're into Lua:
Updates = messages.importChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v71/methods/messages_installStickerSet.md b/old_docs/API_docs_v71/methods/messages_installStickerSet.md
index 21a57a85..67f2aca0 100644
--- a/old_docs/API_docs_v71/methods/messages_installStickerSet.md
+++ b/old_docs/API_docs_v71/methods/messages_installStickerSet.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_StickerSetInstallResult = messages.installStickerSet({stickerset=InputStickerSet, archived=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v71/methods/messages_migrateChat.md b/old_docs/API_docs_v71/methods/messages_migrateChat.md
index a72f4c11..ee4010eb 100644
--- a/old_docs/API_docs_v71/methods/messages_migrateChat.md
+++ b/old_docs/API_docs_v71/methods/messages_migrateChat.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
Updates = messages.migrateChat({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v71/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v71/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v71/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v71/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v71/methods/messages_readHistory.md b/old_docs/API_docs_v71/methods/messages_readHistory.md
index 2ad5cd09..a7f0eca7 100644
--- a/old_docs/API_docs_v71/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v71/methods/messages_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.readHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v71/methods/messages_receivedQueue.md b/old_docs/API_docs_v71/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v71/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v71/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v71/methods/messages_reorderPinnedDialogs.md b/old_docs/API_docs_v71/methods/messages_reorderPinnedDialogs.md
index d6759a55..d89bf27a 100644
--- a/old_docs/API_docs_v71/methods/messages_reorderPinnedDialogs.md
+++ b/old_docs/API_docs_v71/methods/messages_reorderPinnedDialogs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.reorderPinnedDialogs({force=Bool, order={InputPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v71/methods/messages_reportEncryptedSpam.md b/old_docs/API_docs_v71/methods/messages_reportEncryptedSpam.md
index 9b1e868b..aeac27ef 100644
--- a/old_docs/API_docs_v71/methods/messages_reportEncryptedSpam.md
+++ b/old_docs/API_docs_v71/methods/messages_reportEncryptedSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportEncryptedSpam({peer=InputEncryptedChat, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v71/methods/messages_reportSpam.md b/old_docs/API_docs_v71/methods/messages_reportSpam.md
index e92fba13..dc256e55 100644
--- a/old_docs/API_docs_v71/methods/messages_reportSpam.md
+++ b/old_docs/API_docs_v71/methods/messages_reportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v71/methods/messages_requestEncryption.md b/old_docs/API_docs_v71/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v71/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v71/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v71/methods/messages_saveDraft.md b/old_docs/API_docs_v71/methods/messages_saveDraft.md
index 791ce234..ea6d407e 100644
--- a/old_docs/API_docs_v71/methods/messages_saveDraft.md
+++ b/old_docs/API_docs_v71/methods/messages_saveDraft.md
@@ -89,10 +89,10 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v71/methods/messages_saveGif.md b/old_docs/API_docs_v71/methods/messages_saveGif.md
index f504ff9e..010e17ec 100644
--- a/old_docs/API_docs_v71/methods/messages_saveGif.md
+++ b/old_docs/API_docs_v71/methods/messages_saveGif.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.saveGif({id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|GIF_ID_INVALID|The provided GIF ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|GIF_ID_INVALID|The provided GIF ID is invalid|
diff --git a/old_docs/API_docs_v71/methods/messages_saveRecentSticker.md b/old_docs/API_docs_v71/methods/messages_saveRecentSticker.md
index 98c74efd..072b6fe9 100644
--- a/old_docs/API_docs_v71/methods/messages_saveRecentSticker.md
+++ b/old_docs/API_docs_v71/methods/messages_saveRecentSticker.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.saveRecentSticker({attached=Bool, id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v71/methods/messages_search.md b/old_docs/API_docs_v71/methods/messages_search.md
index 7b95c3cf..a0a88452 100644
--- a/old_docs/API_docs_v71/methods/messages_search.md
+++ b/old_docs/API_docs_v71/methods/messages_search.md
@@ -52,16 +52,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({peer=InputPeer, q='string', from_id=InputUser, filter=MessagesFilter, min_date=int, max_date=int, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v71/methods/messages_searchGifs.md b/old_docs/API_docs_v71/methods/messages_searchGifs.md
index 7be4173b..1602d35e 100644
--- a/old_docs/API_docs_v71/methods/messages_searchGifs.md
+++ b/old_docs/API_docs_v71/methods/messages_searchGifs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_FoundGifs = messages.searchGifs({q='string', offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v71/methods/messages_searchGlobal.md b/old_docs/API_docs_v71/methods/messages_searchGlobal.md
index fb38398b..c8da163c 100644
--- a/old_docs/API_docs_v71/methods/messages_searchGlobal.md
+++ b/old_docs/API_docs_v71/methods/messages_searchGlobal.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
messages_Messages = messages.searchGlobal({q='string', offset_date=int, offset_peer=InputPeer, offset_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v71/methods/messages_sendEncrypted.md b/old_docs/API_docs_v71/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v71/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v71/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v71/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v71/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v71/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v71/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v71/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v71/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v71/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v71/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v71/methods/messages_sendInlineBotResult.md b/old_docs/API_docs_v71/methods/messages_sendInlineBotResult.md
index 9ffa02ae..a2b57f4d 100644
--- a/old_docs/API_docs_v71/methods/messages_sendInlineBotResult.md
+++ b/old_docs/API_docs_v71/methods/messages_sendInlineBotResult.md
@@ -48,15 +48,15 @@ Or, if you're into Lua:
Updates = messages.sendInlineBotResult({silent=Bool, background=Bool, clear_draft=Bool, peer=InputPeer, reply_to_msg_id=int, query_id=long, id='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INLINE_RESULT_EXPIRED|The inline query expired|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|QUERY_ID_EMPTY|The query ID is empty|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INLINE_RESULT_EXPIRED|The inline query expired|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|QUERY_ID_EMPTY|The query ID is empty|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v71/methods/messages_sendMedia.md b/old_docs/API_docs_v71/methods/messages_sendMedia.md
index 89dc5572..9bfd0743 100644
--- a/old_docs/API_docs_v71/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v71/methods/messages_sendMedia.md
@@ -54,31 +54,31 @@ Updates = messages.sendMedia({silent=Bool, background=Bool, clear_draft=Bool, pe
You can provide bot API reply_markup objects here.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v71/methods/messages_sendMessage.md b/old_docs/API_docs_v71/methods/messages_sendMessage.md
index 5641ebc3..e0ab305d 100644
--- a/old_docs/API_docs_v71/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v71/methods/messages_sendMessage.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v71/methods/messages_sendScreenshotNotification.md b/old_docs/API_docs_v71/methods/messages_sendScreenshotNotification.md
index 3f5bb36d..4e4e40f5 100644
--- a/old_docs/API_docs_v71/methods/messages_sendScreenshotNotification.md
+++ b/old_docs/API_docs_v71/methods/messages_sendScreenshotNotification.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = messages.sendScreenshotNotification({peer=InputPeer, reply_to_msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v71/methods/messages_setBotCallbackAnswer.md b/old_docs/API_docs_v71/methods/messages_setBotCallbackAnswer.md
index ed058b4f..630ca61c 100644
--- a/old_docs/API_docs_v71/methods/messages_setBotCallbackAnswer.md
+++ b/old_docs/API_docs_v71/methods/messages_setBotCallbackAnswer.md
@@ -52,11 +52,11 @@ Bool = messages.setBotCallbackAnswer({alert=Bool, query_id=long, message='string
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|URL_INVALID|Invalid URL provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|URL_INVALID|Invalid URL provided|
diff --git a/old_docs/API_docs_v71/methods/messages_setBotPrecheckoutResults.md b/old_docs/API_docs_v71/methods/messages_setBotPrecheckoutResults.md
index cc615123..d6e0e61b 100644
--- a/old_docs/API_docs_v71/methods/messages_setBotPrecheckoutResults.md
+++ b/old_docs/API_docs_v71/methods/messages_setBotPrecheckoutResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotPrecheckoutResults({success=Bool, query_id=long, error='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ERROR_TEXT_EMPTY|The provided error message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ERROR_TEXT_EMPTY|The provided error message is empty|
diff --git a/old_docs/API_docs_v71/methods/messages_setBotShippingResults.md b/old_docs/API_docs_v71/methods/messages_setBotShippingResults.md
index f3a86f4f..adc4f64f 100644
--- a/old_docs/API_docs_v71/methods/messages_setBotShippingResults.md
+++ b/old_docs/API_docs_v71/methods/messages_setBotShippingResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotShippingResults({query_id=long, error='string', shipping_options={ShippingOption}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
diff --git a/old_docs/API_docs_v71/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v71/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v71/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v71/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v71/methods/messages_setGameScore.md b/old_docs/API_docs_v71/methods/messages_setGameScore.md
index 548ee889..429b04c6 100644
--- a/old_docs/API_docs_v71/methods/messages_setGameScore.md
+++ b/old_docs/API_docs_v71/methods/messages_setGameScore.md
@@ -47,12 +47,12 @@ Or, if you're into Lua:
Updates = messages.setGameScore({edit_message=Bool, force=Bool, peer=InputPeer, id=int, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v71/methods/messages_setInlineBotResults.md b/old_docs/API_docs_v71/methods/messages_setInlineBotResults.md
index ab388e39..df4c30d4 100644
--- a/old_docs/API_docs_v71/methods/messages_setInlineBotResults.md
+++ b/old_docs/API_docs_v71/methods/messages_setInlineBotResults.md
@@ -48,23 +48,23 @@ Or, if you're into Lua:
Bool = messages.setInlineBotResults({gallery=Bool, private=Bool, query_id=long, results={InputBotInlineResult}, cache_time=int, next_offset='string', switch_pm=InlineBotSwitchPM, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ARTICLE_TITLE_EMPTY|The title of the article is empty|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|PHOTO_INVALID|Photo invalid|
-|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
-|QUERY_ID_INVALID|The query ID is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|RESULT_TYPE_INVALID|Result type invalid|
-|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
-|START_PARAM_INVALID|Start parameter invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ARTICLE_TITLE_EMPTY|The title of the article is empty|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|PHOTO_INVALID|Photo invalid|
+|400|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|RESULT_TYPE_INVALID|Result type invalid|
+|400|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
+|400|START_PARAM_INVALID|Start parameter invalid|
+|403|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v71/methods/messages_setInlineGameScore.md b/old_docs/API_docs_v71/methods/messages_setInlineGameScore.md
index 5eeb1540..62b163d5 100644
--- a/old_docs/API_docs_v71/methods/messages_setInlineGameScore.md
+++ b/old_docs/API_docs_v71/methods/messages_setInlineGameScore.md
@@ -46,11 +46,11 @@ Or, if you're into Lua:
Bool = messages.setInlineGameScore({edit_message=Bool, force=Bool, id=InputBotInlineMessageID, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v71/methods/messages_setTyping.md b/old_docs/API_docs_v71/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v71/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v71/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v71/methods/messages_startBot.md b/old_docs/API_docs_v71/methods/messages_startBot.md
index aa2b2d00..4bf12aa6 100644
--- a/old_docs/API_docs_v71/methods/messages_startBot.md
+++ b/old_docs/API_docs_v71/methods/messages_startBot.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = messages.startBot({bot=InputUser, peer=InputPeer, start_param='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INVALID|This is not a valid bot|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|START_PARAM_EMPTY|The start parameter is empty|
-|START_PARAM_INVALID|Start parameter invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INVALID|This is not a valid bot|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|START_PARAM_EMPTY|The start parameter is empty|
+|400|START_PARAM_INVALID|Start parameter invalid|
diff --git a/old_docs/API_docs_v71/methods/messages_toggleChatAdmins.md b/old_docs/API_docs_v71/methods/messages_toggleChatAdmins.md
index 7851806d..8ea6e65e 100644
--- a/old_docs/API_docs_v71/methods/messages_toggleChatAdmins.md
+++ b/old_docs/API_docs_v71/methods/messages_toggleChatAdmins.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.toggleChatAdmins({chat_id=InputPeer, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v71/methods/messages_toggleDialogPin.md b/old_docs/API_docs_v71/methods/messages_toggleDialogPin.md
index 888f9a25..d44e4abc 100644
--- a/old_docs/API_docs_v71/methods/messages_toggleDialogPin.md
+++ b/old_docs/API_docs_v71/methods/messages_toggleDialogPin.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.toggleDialogPin({pinned=Bool, peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v71/methods/messages_uninstallStickerSet.md b/old_docs/API_docs_v71/methods/messages_uninstallStickerSet.md
index 59abc510..6b7a2006 100644
--- a/old_docs/API_docs_v71/methods/messages_uninstallStickerSet.md
+++ b/old_docs/API_docs_v71/methods/messages_uninstallStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.uninstallStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v71/methods/messages_uploadMedia.md b/old_docs/API_docs_v71/methods/messages_uploadMedia.md
index afc806fe..09fc074c 100644
--- a/old_docs/API_docs_v71/methods/messages_uploadMedia.md
+++ b/old_docs/API_docs_v71/methods/messages_uploadMedia.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
MessageMedia = messages.uploadMedia({peer=InputPeer, media=InputMedia, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v71/methods/payments_getPaymentForm.md b/old_docs/API_docs_v71/methods/payments_getPaymentForm.md
index e8e04f37..4c28121f 100644
--- a/old_docs/API_docs_v71/methods/payments_getPaymentForm.md
+++ b/old_docs/API_docs_v71/methods/payments_getPaymentForm.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentForm = payments.getPaymentForm({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v71/methods/payments_getPaymentReceipt.md b/old_docs/API_docs_v71/methods/payments_getPaymentReceipt.md
index acb1c209..0e2f76a8 100644
--- a/old_docs/API_docs_v71/methods/payments_getPaymentReceipt.md
+++ b/old_docs/API_docs_v71/methods/payments_getPaymentReceipt.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentReceipt = payments.getPaymentReceipt({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v71/methods/payments_sendPaymentForm.md b/old_docs/API_docs_v71/methods/payments_sendPaymentForm.md
index b8fa905d..1910ede8 100644
--- a/old_docs/API_docs_v71/methods/payments_sendPaymentForm.md
+++ b/old_docs/API_docs_v71/methods/payments_sendPaymentForm.md
@@ -45,10 +45,10 @@ Or, if you're into Lua:
payments_PaymentResult = payments.sendPaymentForm({msg_id=int, requested_info_id='string', shipping_option_id='string', credentials=InputPaymentCredentials, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v71/methods/payments_validateRequestedInfo.md b/old_docs/API_docs_v71/methods/payments_validateRequestedInfo.md
index 3b9da7e6..f18e1660 100644
--- a/old_docs/API_docs_v71/methods/payments_validateRequestedInfo.md
+++ b/old_docs/API_docs_v71/methods/payments_validateRequestedInfo.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
payments_ValidatedRequestedInfo = payments.validateRequestedInfo({save=Bool, msg_id=int, info=PaymentRequestedInfo, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v71/methods/phone_acceptCall.md b/old_docs/API_docs_v71/methods/phone_acceptCall.md
index b75ac65b..f5c58f01 100644
--- a/old_docs/API_docs_v71/methods/phone_acceptCall.md
+++ b/old_docs/API_docs_v71/methods/phone_acceptCall.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->acceptCall(['peer' => InputPhoneCall, 'g_b' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.acceptCall({peer=InputPhoneCall, g_b='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
diff --git a/old_docs/API_docs_v71/methods/phone_confirmCall.md b/old_docs/API_docs_v71/methods/phone_confirmCall.md
index 1a75563d..468307cc 100644
--- a/old_docs/API_docs_v71/methods/phone_confirmCall.md
+++ b/old_docs/API_docs_v71/methods/phone_confirmCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->confirmCall(['peer' => InputPhoneCall, 'g_a' => 'bytes', 'key_fingerprint' => long, 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.confirmCall({peer=InputPhoneCall, g_a='bytes', key_fingerprint=long, protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v71/methods/phone_discardCall.md b/old_docs/API_docs_v71/methods/phone_discardCall.md
index e50456eb..ffaa18ea 100644
--- a/old_docs/API_docs_v71/methods/phone_discardCall.md
+++ b/old_docs/API_docs_v71/methods/phone_discardCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|duration|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|reason|[PhoneCallDiscardReason](../types/PhoneCallDiscardReason.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|connection\_id|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [Updates](../types/Updates.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Updates = $MadelineProto->phone->discardCall(['peer' => InputPhoneCall, 'duration' => int, 'reason' => PhoneCallDiscardReason, 'connection_id' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Updates = phone.discardCall({peer=InputPhoneCall, duration=int, reason=PhoneCallDiscardReason, connection_id=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v71/methods/phone_receivedCall.md b/old_docs/API_docs_v71/methods/phone_receivedCall.md
index c43bc8ac..6091424b 100644
--- a/old_docs/API_docs_v71/methods/phone_receivedCall.md
+++ b/old_docs/API_docs_v71/methods/phone_receivedCall.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Bool = phone.receivedCall({peer=InputPhoneCall, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_ALREADY_DECLINED|The call was already declined|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v71/methods/phone_requestCall.md b/old_docs/API_docs_v71/methods/phone_requestCall.md
index 9b8df564..c8e828f2 100644
--- a/old_docs/API_docs_v71/methods/phone_requestCall.md
+++ b/old_docs/API_docs_v71/methods/phone_requestCall.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Optional|
+|g\_a\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->requestCall(['user_id' => InputUser, 'g_a_hash' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.requestCall({user_id=InputUser, g_a_hash='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
+|400|PARTICIPANT_VERSION_OUTDATED|The other participant does not use an up to date telegram client with support for calls|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|403|USER_IS_BLOCKED|You were blocked by this user|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v71/methods/phone_saveCallDebug.md b/old_docs/API_docs_v71/methods/phone_saveCallDebug.md
index 8acbc353..1e793c05 100644
--- a/old_docs/API_docs_v71/methods/phone_saveCallDebug.md
+++ b/old_docs/API_docs_v71/methods/phone_saveCallDebug.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = phone.saveCallDebug({peer=InputPhoneCall, debug=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
-|DATA_JSON_INVALID|The provided JSON data is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|DATA_JSON_INVALID|The provided JSON data is invalid|
diff --git a/old_docs/API_docs_v71/methods/phone_setCallRating.md b/old_docs/API_docs_v71/methods/phone_setCallRating.md
index 9bc6bdd0..9daed209 100644
--- a/old_docs/API_docs_v71/methods/phone_setCallRating.md
+++ b/old_docs/API_docs_v71/methods/phone_setCallRating.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Updates = phone.setCallRating({peer=InputPhoneCall, rating=int, comment='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v71/methods/photos_getUserPhotos.md b/old_docs/API_docs_v71/methods/photos_getUserPhotos.md
index 57f5772b..a01f3180 100644
--- a/old_docs/API_docs_v71/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v71/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v71/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v71/methods/photos_updateProfilePhoto.md
index cca2fe30..f7c91ec6 100644
--- a/old_docs/API_docs_v71/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v71/methods/photos_updateProfilePhoto.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v71/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v71/methods/photos_uploadProfilePhoto.md
index 457bade8..badde2de 100644
--- a/old_docs/API_docs_v71/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v71/methods/photos_uploadProfilePhoto.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v71/methods/stickers_addStickerToSet.md b/old_docs/API_docs_v71/methods/stickers_addStickerToSet.md
index 78e8437c..b1fa2aad 100644
--- a/old_docs/API_docs_v71/methods/stickers_addStickerToSet.md
+++ b/old_docs/API_docs_v71/methods/stickers_addStickerToSet.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.addStickerToSet({stickerset=InputStickerSet, sticker=InputStickerSetItem, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v71/methods/stickers_changeStickerPosition.md b/old_docs/API_docs_v71/methods/stickers_changeStickerPosition.md
index cddc1cbb..98dde67e 100644
--- a/old_docs/API_docs_v71/methods/stickers_changeStickerPosition.md
+++ b/old_docs/API_docs_v71/methods/stickers_changeStickerPosition.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.changeStickerPosition({sticker=InputDocument, position=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/old_docs/API_docs_v71/methods/stickers_createStickerSet.md b/old_docs/API_docs_v71/methods/stickers_createStickerSet.md
index 41e4ad11..741e0ad6 100644
--- a/old_docs/API_docs_v71/methods/stickers_createStickerSet.md
+++ b/old_docs/API_docs_v71/methods/stickers_createStickerSet.md
@@ -46,18 +46,18 @@ Or, if you're into Lua:
messages_StickerSet = stickers.createStickerSet({masks=Bool, user_id=InputUser, title='string', short_name='string', stickers={InputStickerSetItem}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|PACK_SHORT_NAME_INVALID|Short pack name invalid|
-|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|STICKER_EMOJI_INVALID|Sticker emoji invalid|
-|STICKER_FILE_INVALID|Sticker file invalid|
-|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
-|STICKERS_EMPTY|No sticker provided|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|PACK_SHORT_NAME_INVALID|Short pack name invalid|
+|400|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|STICKER_EMOJI_INVALID|Sticker emoji invalid|
+|400|STICKER_FILE_INVALID|Sticker file invalid|
+|400|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
+|400|STICKERS_EMPTY|No sticker provided|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v71/methods/stickers_removeStickerFromSet.md b/old_docs/API_docs_v71/methods/stickers_removeStickerFromSet.md
index ea4621f2..d1fc4339 100644
--- a/old_docs/API_docs_v71/methods/stickers_removeStickerFromSet.md
+++ b/old_docs/API_docs_v71/methods/stickers_removeStickerFromSet.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.removeStickerFromSet({sticker=InputDocument, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/old_docs/API_docs_v71/methods/updates_getChannelDifference.md b/old_docs/API_docs_v71/methods/updates_getChannelDifference.md
index 6fa79529..9735c14a 100644
--- a/old_docs/API_docs_v71/methods/updates_getChannelDifference.md
+++ b/old_docs/API_docs_v71/methods/updates_getChannelDifference.md
@@ -7,8 +7,56 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|force|[Bool](../types/Bool.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|filter|[ChannelMessagesFilter](../types/ChannelMessagesFilter.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_ChannelDifference](../types/updates_ChannelDifference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_ChannelDifference = $MadelineProto->updates->getChannelDifference(['force' => Bool, 'channel' => InputChannel, 'filter' => ChannelMessagesFilter, 'pts' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_ChannelDifference = updates.getChannelDifference({force=Bool, channel=InputChannel, filter=ChannelMessagesFilter, pts=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|400|RANGES_INVALID|Invalid range provided|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v71/methods/updates_getDifference.md b/old_docs/API_docs_v71/methods/updates_getDifference.md
index 33e7d7f2..bcfac4e2 100644
--- a/old_docs/API_docs_v71/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v71/methods/updates_getDifference.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|pts\_total\_limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'pts_total_limit' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, pts_total_limit=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v71/methods/updates_getState.md b/old_docs/API_docs_v71/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v71/methods/updates_getState.md
+++ b/old_docs/API_docs_v71/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v71/methods/upload_getCdnFile.md b/old_docs/API_docs_v71/methods/upload_getCdnFile.md
index 5e5b3f43..be9ad311 100644
--- a/old_docs/API_docs_v71/methods/upload_getCdnFile.md
+++ b/old_docs/API_docs_v71/methods/upload_getCdnFile.md
@@ -7,8 +7,40 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_CdnFile](../types/upload_CdnFile.md)
+
+### Can bots use this method: **NO**
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_CdnFile = $MadelineProto->upload->getCdnFile(['file_token' => 'bytes', 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_CdnFile = upload.getCdnFile({file_token='bytes', offset=int, limit=int, })
+```
+
diff --git a/old_docs/API_docs_v71/methods/upload_getCdnFileHashes.md b/old_docs/API_docs_v71/methods/upload_getCdnFileHashes.md
index ea6a8e75..4c7c341a 100644
--- a/old_docs/API_docs_v71/methods/upload_getCdnFileHashes.md
+++ b/old_docs/API_docs_v71/methods/upload_getCdnFileHashes.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Vector\_of\_CdnFileHash](../types/CdnFileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_CdnFileHash = $MadelineProto->upload->getCdnFileHashes(['file_token' => 'bytes', 'offset' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_CdnFileHash = upload.getCdnFileHashes({file_token='bytes', offset=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/old_docs/API_docs_v71/methods/upload_getFile.md b/old_docs/API_docs_v71/methods/upload_getFile.md
index c72e6090..d8b433d6 100644
--- a/old_docs/API_docs_v71/methods/upload_getFile.md
+++ b/old_docs/API_docs_v71/methods/upload_getFile.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v71/methods/upload_getWebFile.md b/old_docs/API_docs_v71/methods/upload_getWebFile.md
index 21179a66..7b63f96c 100644
--- a/old_docs/API_docs_v71/methods/upload_getWebFile.md
+++ b/old_docs/API_docs_v71/methods/upload_getWebFile.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
upload_WebFile = upload.getWebFile({location=InputWebFileLocation, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LOCATION_INVALID|The provided location is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LOCATION_INVALID|The provided location is invalid|
diff --git a/old_docs/API_docs_v71/methods/upload_reuploadCdnFile.md b/old_docs/API_docs_v71/methods/upload_reuploadCdnFile.md
index cc20d5e3..ef42f7b4 100644
--- a/old_docs/API_docs_v71/methods/upload_reuploadCdnFile.md
+++ b/old_docs/API_docs_v71/methods/upload_reuploadCdnFile.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|request\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Vector\_of\_CdnFileHash](../types/CdnFileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_CdnFileHash = $MadelineProto->upload->reuploadCdnFile(['file_token' => 'bytes', 'request_token' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_CdnFileHash = upload.reuploadCdnFile({file_token='bytes', request_token='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/old_docs/API_docs_v71/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v71/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v71/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v71/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v71/methods/upload_saveFilePart.md b/old_docs/API_docs_v71/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v71/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v71/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v71/methods/users_getFullUser.md b/old_docs/API_docs_v71/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v71/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v71/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v71/methods/users_getUsers.md b/old_docs/API_docs_v71/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v71/methods/users_getUsers.md
+++ b/old_docs/API_docs_v71/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v72/methods/README.md b/old_docs/API_docs_v72/methods/README.md
index 8f2a5e5f..a161eab6 100644
--- a/old_docs/API_docs_v72/methods/README.md
+++ b/old_docs/API_docs_v72/methods/README.md
@@ -30,435 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Add a sticker set: messages.installStickerSet
-
-* Add a sticker to favorites: messages.faveSticker
-
-* Add a sticker to recent stickers: messages.saveRecentSticker
-
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add phone number as contact: contacts.importContacts
-
-* Add sticker to stickerset: stickers.addStickerToSet
-
-* Add users to channel/supergroup: channels.inviteToChannel
-
-* Allow or disallow any user to invite users to this channel/supergroup: channels.toggleInvites
-
-* Block a user: contacts.block
-
-* Bots only: send payment form: payments.sendPaymentForm
-
-* Bots only: set precheckout results: messages.setBotPrecheckoutResults
-
-* Bots only: set shipping results: messages.setBotShippingResults
-
-* Bots only: set the callback answer (after a button was clicked): messages.setBotCallbackAnswer
-
-* Bots only: set the results of an inline query: messages.setInlineBotResults
-
-* Call inline bot: messages.getInlineBotResults
-
-* Change notification settings: account.updateNotifySettings
-
-* Change sticker position in photo: stickers.changeStickerPosition
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if about to edit a message or a media caption: messages.getMessageEditData
-
-* Check if an invitation link is valid: messages.checkChatInvite
-
-* Check if this phone number is registered on telegram: auth.checkPhone
-
-* Check if this username is available: account.checkUsername
-
-* Check if this username is free and can be assigned to a channel/supergroup: channels.checkUsername
-
-* Clear all recent stickers: messages.clearRecentStickers
-
-* Clear saved payments info: payments.clearSavedInfo
-
-* Confirm this phone number is associated to this account, obtain phone_code_hash from sendConfirmPhoneCode: account.confirmPhone
-
-* Convert chat to supergroup: messages.migrateChat
-
-* Create a chat (not supergroup): messages.createChat
-
-* Create channel/supergroup: channels.createChannel
-
-* Create stickerset: stickers.createStickerSet
-
-* Delete a certain session: account.resetAuthorization
-
-* Delete a channel/supergroup: channels.deleteChannel
-
-* Delete a contact: contacts.deleteContact
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete all messages of a user in a channel/supergroup: channels.deleteUserHistory
-
-* Delete all temporary authorization keys except the ones provided: auth.dropTempAuthKeys
-
-* Delete channel/supergroup messages: channels.deleteMessages
-
-* Delete chat history: messages.deleteHistory
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete the history of a supergroup/channel: channels.deleteHistory
-
-* Delete this account: account.deleteAccount
-
-* Destroy current authorization key: destroy_auth_key
-
-* Destroy the current MTProto session: destroy_session
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Do not send answer to provided request: rpc_drop_answer
-
-* Download a file through telegram: upload.getWebFile
-
-* Edit a message: messages.editMessage
-
-* Edit a sent inline message: messages.editInlineBotMessage
-
-* Edit admin permissions of a user in a channel/supergroup: channels.editAdmin
-
-* Edit admin permissions: messages.editChatAdmin
-
-* Edit the about text of a channel/supergroup: channels.editAbout
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the photo of a supergroup/channel: channels.editPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Edit the title of a supergroup/channel: channels.editTitle
-
-* Enable all users are admins in normal groups (not supergroups): messages.toggleChatAdmins
-
-* Enable or disable hidden history for new channel/supergroup users: channels.togglePreHistoryHidden
-
-* Export chat invite : messages.exportChatInvite
-
-* Export contact as card: contacts.exportCard
-
-* Export the invite link of a channel: channels.exportInvite
-
-* Forward message: messages.forwardMessage
-
-* Forward messages: messages.forwardMessages
-
-* Get CDN configuration: help.getCdnConfig
-
-* Get a stickerset: messages.getStickerSet
-
-* Get account TTL: account.getAccountTTL
-
-* Get admin log of a channel/supergroup: channels.getAdminLog
-
-* Get all archived stickers: messages.getArchivedStickers
-
-* Get all chats (not supergroups or channels): messages.getAllChats
-
-* Get all contacts: contacts.getContacts
-
-* Get all logged-in authorizations: account.getAuthorizations
-
-* Get all message drafts: messages.getAllDrafts
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get all supergroups/channels where you're admin: channels.getAdminedPublicChannels
-
-* Get and increase message views: messages.getMessagesViews
-
-* Get available languages: langpack.getLanguages
-
-* Get blocked users: contacts.getBlocked
-
-* Get call configuration: phone.getCallConfig
-
-* Get channel/supergroup messages: channels.getMessages
-
-* Get channel/supergroup participants (you should use `$MadelineProto->get_pwr_chat($id)` instead): channels.getParticipants
-
-* Get chats in common with a user: messages.getCommonChats
-
-* Get dialog info of peers: messages.getPeerDialogs
-
-* Get document by SHA256 hash: messages.getDocumentByHash
-
-* Get favorite stickers: messages.getFavedStickers
-
-* Get featured stickers: messages.getFeaturedStickers
-
-* Get future salts: get_future_salts
-
-* Get high scores of a game sent in an inline message: messages.getInlineGameHighScores
-
-* Get high scores of a game: messages.getGameHighScores
-
-* Get info about a certain channel/supergroup participant: channels.getParticipant
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about multiple channels/supergroups: channels.getChannels
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get invitation text: help.getInviteText
-
-* Get language pack strings: langpack.getStrings
-
-* Get language pack updates: langpack.getDifference
-
-* Get language pack: langpack.getLangPack
-
-* Get masks: messages.getMaskStickers
-
-* Get messages: messages.getMessages
-
-* Get most used chats: contacts.getTopPeers
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get payment form: payments.getPaymentForm
-
-* Get payment receipt: payments.getPaymentReceipt
-
-* Get pinned dialogs: messages.getPinnedDialogs
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get recent locations: messages.getRecentLocations
-
-* Get recent stickers: messages.getRecentStickers
-
-* Get recent t.me URLs: help.getRecentMeUrls
-
-* Get saved gifs: messages.getSavedGifs
-
-* Get saved payments info: payments.getSavedInfo
-
-* Get server configuration: help.getConfig
-
-* Get stickers attachable to images: messages.getAttachedStickers
-
-* Get temporary password for buying products through bots: account.getTmpPassword
-
-* Get terms of service: help.getTermsOfService
-
-* Get the callback answer of a bot (after clicking a button): messages.getBotCallbackAnswer
-
-* Get the changelog of this app: help.getAppChangelog
-
-* Get the current password: account.getPassword
-
-* Get the link of a message in a channel: channels.exportMessageLink
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Get the settings of apeer: messages.getPeerSettings
-
-* Get unread mentions: messages.getUnreadMentions
-
-* Get webpage preview: messages.getWebPage
-
-* Get webpage preview: messages.getWebPagePreview
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Global message search: messages.searchGlobal
-
-* Hide report spam popup: messages.hideReportSpam
-
-* Import card as contact: contacts.importCard
-
-* Import chat invite: messages.importChatInvite
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Invalidate sent phone code: auth.cancelCode
-
-* Invite friends to telegram!: auth.sendInvites
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invoke with method without returning updates in the socket: invokeWithoutUpdates
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Join a channel/supergroup: channels.joinChannel
-
-* Kick or ban a user from a channel/supergroup: channels.editBanned
-
-* Leave a channel/supergroup: channels.leaveChannel
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark channel/supergroup history as read: channels.readHistory
-
-* Mark channel/supergroup messages as read: channels.readMessageContents
-
-* Mark mentions as read: messages.readMentions
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Mark new featured stickers as read: messages.readFeaturedStickers
-
-* Notify server that you received a call (server will refuse all incoming calls until the current call is over): phone.receivedCall
-
-* Pin or unpin dialog: messages.toggleDialogPin
-
-* Pings the server and causes disconection if the same method is not called within ping_disconnect_delay: ping_delay_disconnect
-
-* Pings the server: ping
-
-* Register device for push notifications: account.registerDevice
-
-* Remove a sticker set: messages.uninstallStickerSet
-
-* Remove sticker from stickerset: stickers.removeStickerFromSet
-
-* Reorder pinned dialogs: messages.reorderPinnedDialogs
-
-* Reorder sticker sets: messages.reorderStickerSets
-
-* Report a message in a supergroup/channel for spam: channels.reportSpam
-
-* Report a peer for spam: messages.reportSpam
-
-* Report for spam a secret chat: messages.reportEncryptedSpam
-
-* Report for spam: account.reportPeer
-
-* Requests Diffie-hellman parameters for key exchange: req_DH_params
-
-* Requests PQ for factorization: req_pq
-
-* Resend the SMS verification code: auth.resendCode
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Reset saved contacts: contacts.resetSaved
-
-* Reset top peer rating for a certain category/peer: contacts.resetTopPeerRating
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Save a GIF: messages.saveGif
-
-* Save a message draft: messages.saveDraft
-
-* Save call debugging info: phone.saveCallDebug
-
-* Save developer info for telegram contest: contest.saveDeveloperInfo
-
-* Search contacts: contacts.search
-
-* Search gifs: messages.searchGifs
-
-* Search peers or messages: messages.search
-
-* Send a custom request to the bot API: bots.sendCustomRequest
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send an email to recover the 2FA password: auth.requestPasswordRecovery
-
-* Send confirmation phone code: account.sendConfirmPhoneCode
-
-* Send inline bot result obtained with messages.getInlineBotResults to the chat: messages.sendInlineBotResult
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send screenshot notification: messages.sendScreenshotNotification
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Send webhook request via bot API: bots.answerWebhookJSONQuery
-
-* Set account TTL: account.setAccountTTL
-
-* Set phone call rating: phone.setCallRating
-
-* Set privacy settings: account.setPrivacy
-
-* Set the game score of an inline message: messages.setInlineGameScore
-
-* Set the game score: messages.setGameScore
-
-* Set the pinned message of a channel/supergroup: channels.updatePinnedMessage
-
-* Set the supergroup/channel stickerpack: channels.setStickers
-
-* Set the update status of webhook: help.setBotUpdatesStatus
-
-* Sets client diffie-hellman parameters: set_client_DH_params
-
-* Start a bot: messages.startBot
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Toggle channel signatures: channels.toggleSignatures
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update profile info: account.updateProfile
-
-* Update the username of a supergroup/channel: channels.updateUsername
-
-* Update this user's username: account.updateUsername
-
-* Upload a file without sending it to anyone: messages.uploadMedia
-
-* Upload profile photo: photos.uploadProfilePhoto
-
-* Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
-
-* Validate requested payment info: payments.validateRequestedInfo
-
diff --git a/old_docs/API_docs_v72/methods/account_changePhone.md b/old_docs/API_docs_v72/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/old_docs/API_docs_v72/methods/account_changePhone.md
+++ b/old_docs/API_docs_v72/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v72/methods/account_checkUsername.md b/old_docs/API_docs_v72/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v72/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v72/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v72/methods/account_confirmPhone.md b/old_docs/API_docs_v72/methods/account_confirmPhone.md
index b730c2dc..c114cd20 100644
--- a/old_docs/API_docs_v72/methods/account_confirmPhone.md
+++ b/old_docs/API_docs_v72/methods/account_confirmPhone.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = account.confirmPhone({phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_HASH_INVALID|Code hash invalid|
-|PHONE_CODE_EMPTY|phone_code is missing|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_HASH_INVALID|Code hash invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
diff --git a/old_docs/API_docs_v72/methods/account_getNotifySettings.md b/old_docs/API_docs_v72/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v72/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v72/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v72/methods/account_getPasswordSettings.md b/old_docs/API_docs_v72/methods/account_getPasswordSettings.md
index 8ebb78ee..8f878365 100644
--- a/old_docs/API_docs_v72/methods/account_getPasswordSettings.md
+++ b/old_docs/API_docs_v72/methods/account_getPasswordSettings.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+Get the current 2FA settings
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+### Return type: [account\_PasswordSettings](../types/account_PasswordSettings.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$account_PasswordSettings = $MadelineProto->account->getPasswordSettings(['current_password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+account_PasswordSettings = account.getPasswordSettings({current_password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v72/methods/account_getPrivacy.md b/old_docs/API_docs_v72/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/old_docs/API_docs_v72/methods/account_getPrivacy.md
+++ b/old_docs/API_docs_v72/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v72/methods/account_getTmpPassword.md b/old_docs/API_docs_v72/methods/account_getTmpPassword.md
index fd8314ee..a74d0f5a 100644
--- a/old_docs/API_docs_v72/methods/account_getTmpPassword.md
+++ b/old_docs/API_docs_v72/methods/account_getTmpPassword.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
account_TmpPassword = account.getTmpPassword({password_hash='bytes', period=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_HASH_INVALID|The provided password hash is invalid|
-|TMP_PASSWORD_DISABLED|The temporary password is disabled|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
+|400|TMP_PASSWORD_DISABLED|The temporary password is disabled|
diff --git a/old_docs/API_docs_v72/methods/account_registerDevice.md b/old_docs/API_docs_v72/methods/account_registerDevice.md
index cf16c2a2..82a6cad9 100644
--- a/old_docs/API_docs_v72/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v72/methods/account_registerDevice.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({token_type=int, token='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v72/methods/account_reportPeer.md b/old_docs/API_docs_v72/methods/account_reportPeer.md
index a203c900..87b080eb 100644
--- a/old_docs/API_docs_v72/methods/account_reportPeer.md
+++ b/old_docs/API_docs_v72/methods/account_reportPeer.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.reportPeer({peer=InputPeer, reason=ReportReason, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v72/methods/account_resetAuthorization.md b/old_docs/API_docs_v72/methods/account_resetAuthorization.md
index c950992c..e8e8ecc4 100644
--- a/old_docs/API_docs_v72/methods/account_resetAuthorization.md
+++ b/old_docs/API_docs_v72/methods/account_resetAuthorization.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.resetAuthorization({hash=long, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v72/methods/account_sendChangePhoneCode.md b/old_docs/API_docs_v72/methods/account_sendChangePhoneCode.md
index d5be60ef..08e5e86e 100644
--- a/old_docs/API_docs_v72/methods/account_sendChangePhoneCode.md
+++ b/old_docs/API_docs_v72/methods/account_sendChangePhoneCode.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendChangePhoneCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v72/methods/account_sendConfirmPhoneCode.md b/old_docs/API_docs_v72/methods/account_sendConfirmPhoneCode.md
index 028a1fdc..9fa7b57e 100644
--- a/old_docs/API_docs_v72/methods/account_sendConfirmPhoneCode.md
+++ b/old_docs/API_docs_v72/methods/account_sendConfirmPhoneCode.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendConfirmPhoneCode({allow_flashcall=Bool, hash='string', current_number=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v72/methods/account_setAccountTTL.md b/old_docs/API_docs_v72/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/old_docs/API_docs_v72/methods/account_setAccountTTL.md
+++ b/old_docs/API_docs_v72/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/old_docs/API_docs_v72/methods/account_setPrivacy.md b/old_docs/API_docs_v72/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/old_docs/API_docs_v72/methods/account_setPrivacy.md
+++ b/old_docs/API_docs_v72/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v72/methods/account_unregisterDevice.md b/old_docs/API_docs_v72/methods/account_unregisterDevice.md
index 589f48b0..a184da43 100644
--- a/old_docs/API_docs_v72/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v72/methods/account_unregisterDevice.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v72/methods/account_updateNotifySettings.md b/old_docs/API_docs_v72/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v72/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v72/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v72/methods/account_updatePasswordSettings.md b/old_docs/API_docs_v72/methods/account_updatePasswordSettings.md
index 80f27228..68e5da6d 100644
--- a/old_docs/API_docs_v72/methods/account_updatePasswordSettings.md
+++ b/old_docs/API_docs_v72/methods/account_updatePasswordSettings.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+|new\_settings|[account\_PasswordInputSettings](../types/account_PasswordInputSettings.md) | New 2FA settings | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->account->updatePasswordSettings(['current_password_hash' => 'bytes', 'new_settings' => account_PasswordInputSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = account.updatePasswordSettings({current_password_hash='bytes', new_settings=account_PasswordInputSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EMAIL_UNCONFIRMED|Email unconfirmed|
+|400|EMAIL_UNCONFIRMED_X|The provided email isn't confirmed, X is the length of the verification code that was just sent to the email.|
+|400|NEW_SALT_INVALID|The new salt is invalid|
+|400|NEW_SETTINGS_INVALID|The new settings are invalid|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v72/methods/account_updateProfile.md b/old_docs/API_docs_v72/methods/account_updateProfile.md
index af5b6a0f..0d74c5e5 100644
--- a/old_docs/API_docs_v72/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v72/methods/account_updateProfile.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v72/methods/account_updateStatus.md b/old_docs/API_docs_v72/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v72/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v72/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v72/methods/account_updateUsername.md b/old_docs/API_docs_v72/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v72/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v72/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v72/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v72/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v72/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v72/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v72/methods/auth_cancelCode.md b/old_docs/API_docs_v72/methods/auth_cancelCode.md
index fcbd7713..a69e0118 100644
--- a/old_docs/API_docs_v72/methods/auth_cancelCode.md
+++ b/old_docs/API_docs_v72/methods/auth_cancelCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = auth.cancelCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v72/methods/auth_checkPassword.md b/old_docs/API_docs_v72/methods/auth_checkPassword.md
index 8d76c483..db65cb56 100644
--- a/old_docs/API_docs_v72/methods/auth_checkPassword.md
+++ b/old_docs/API_docs_v72/methods/auth_checkPassword.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->checkPassword(['password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.checkPassword({password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v72/methods/auth_checkPhone.md b/old_docs/API_docs_v72/methods/auth_checkPhone.md
index f3e32365..e974ce7f 100644
--- a/old_docs/API_docs_v72/methods/auth_checkPhone.md
+++ b/old_docs/API_docs_v72/methods/auth_checkPhone.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
auth_CheckedPhone = auth.checkPhone({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v72/methods/auth_exportAuthorization.md b/old_docs/API_docs_v72/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v72/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v72/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v72/methods/auth_importAuthorization.md b/old_docs/API_docs_v72/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v72/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v72/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v72/methods/auth_importBotAuthorization.md b/old_docs/API_docs_v72/methods/auth_importBotAuthorization.md
index 1a98c1b9..98a2f8ca 100644
--- a/old_docs/API_docs_v72/methods/auth_importBotAuthorization.md
+++ b/old_docs/API_docs_v72/methods/auth_importBotAuthorization.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|api\_id|[int](../types/int.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_hash|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|bot\_auth\_token|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importBotAuthorization(['api_id' => int, 'api_hash' => 'string', 'bot_auth_token' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importBotAuthorization({api_id=int, api_hash='string', bot_auth_token='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ACCESS_TOKEN_EXPIRED|Access token expired|
+|400|ACCESS_TOKEN_INVALID|Access token invalid|
+|400|API_ID_INVALID|API ID invalid|
diff --git a/old_docs/API_docs_v72/methods/auth_logOut.md b/old_docs/API_docs_v72/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v72/methods/auth_logOut.md
+++ b/old_docs/API_docs_v72/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v72/methods/auth_recoverPassword.md b/old_docs/API_docs_v72/methods/auth_recoverPassword.md
index 83ff5aed..d4bad9c5 100644
--- a/old_docs/API_docs_v72/methods/auth_recoverPassword.md
+++ b/old_docs/API_docs_v72/methods/auth_recoverPassword.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
auth_Authorization = auth.recoverPassword({code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_EMPTY|The provided code is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_EMPTY|The provided code is empty|
diff --git a/old_docs/API_docs_v72/methods/auth_requestPasswordRecovery.md b/old_docs/API_docs_v72/methods/auth_requestPasswordRecovery.md
index 1864bbb0..b6ad57ba 100644
--- a/old_docs/API_docs_v72/methods/auth_requestPasswordRecovery.md
+++ b/old_docs/API_docs_v72/methods/auth_requestPasswordRecovery.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
auth_PasswordRecovery = auth.requestPasswordRecovery({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_EMPTY|The provided password is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_EMPTY|The provided password is empty|
diff --git a/old_docs/API_docs_v72/methods/auth_resendCode.md b/old_docs/API_docs_v72/methods/auth_resendCode.md
index ff7868ea..ec730d75 100644
--- a/old_docs/API_docs_v72/methods/auth_resendCode.md
+++ b/old_docs/API_docs_v72/methods/auth_resendCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = auth.resendCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v72/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v72/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v72/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v72/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v72/methods/auth_sendCode.md b/old_docs/API_docs_v72/methods/auth_sendCode.md
index 9afebb55..1e9d1a4e 100644
--- a/old_docs/API_docs_v72/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v72/methods/auth_sendCode.md
@@ -7,8 +7,59 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|allow\_flashcall|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|current\_number|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['allow_flashcall' => Bool, 'phone_number' => 'string', 'current_number' => Bool, 'api_id' => int, 'api_hash' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, api_id=int, api_hash='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v72/methods/auth_sendInvites.md b/old_docs/API_docs_v72/methods/auth_sendInvites.md
index e10c1109..4c11023e 100644
--- a/old_docs/API_docs_v72/methods/auth_sendInvites.md
+++ b/old_docs/API_docs_v72/methods/auth_sendInvites.md
@@ -49,10 +49,10 @@ Bool = auth.sendInvites({phone_numbers={'string'}, message='string', })
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_EMPTY|The provided message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_EMPTY|The provided message is empty|
diff --git a/old_docs/API_docs_v72/methods/auth_signIn.md b/old_docs/API_docs_v72/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v72/methods/auth_signIn.md
+++ b/old_docs/API_docs_v72/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v72/methods/auth_signUp.md b/old_docs/API_docs_v72/methods/auth_signUp.md
index 15960145..31154486 100644
--- a/old_docs/API_docs_v72/methods/auth_signUp.md
+++ b/old_docs/API_docs_v72/methods/auth_signUp.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', phone_code='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v72/methods/bots_answerWebhookJSONQuery.md b/old_docs/API_docs_v72/methods/bots_answerWebhookJSONQuery.md
index ae0fa6d9..f2233514 100644
--- a/old_docs/API_docs_v72/methods/bots_answerWebhookJSONQuery.md
+++ b/old_docs/API_docs_v72/methods/bots_answerWebhookJSONQuery.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = bots.answerWebhookJSONQuery({query_id=long, data=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v72/methods/bots_sendCustomRequest.md b/old_docs/API_docs_v72/methods/bots_sendCustomRequest.md
index c1fd8183..8a6a2df5 100644
--- a/old_docs/API_docs_v72/methods/bots_sendCustomRequest.md
+++ b/old_docs/API_docs_v72/methods/bots_sendCustomRequest.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
DataJSON = bots.sendCustomRequest({custom_method='string', params=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v72/methods/channels_checkUsername.md b/old_docs/API_docs_v72/methods/channels_checkUsername.md
index 483a2f6f..52365d34 100644
--- a/old_docs/API_docs_v72/methods/channels_checkUsername.md
+++ b/old_docs/API_docs_v72/methods/channels_checkUsername.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Bool = channels.checkUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v72/methods/channels_createChannel.md b/old_docs/API_docs_v72/methods/channels_createChannel.md
index b924e6a6..ecaee0ef 100644
--- a/old_docs/API_docs_v72/methods/channels_createChannel.md
+++ b/old_docs/API_docs_v72/methods/channels_createChannel.md
@@ -45,12 +45,12 @@ Or, if you're into Lua:
Updates = channels.createChannel({broadcast=Bool, megagroup=Bool, title='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_TITLE_EMPTY|No chat title provided|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
+|406|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v72/methods/channels_deleteChannel.md b/old_docs/API_docs_v72/methods/channels_deleteChannel.md
index 53a9c23d..1b8d2d48 100644
--- a/old_docs/API_docs_v72/methods/channels_deleteChannel.md
+++ b/old_docs/API_docs_v72/methods/channels_deleteChannel.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Updates = channels.deleteChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v72/methods/channels_deleteMessages.md b/old_docs/API_docs_v72/methods/channels_deleteMessages.md
index f76a9ad1..463ebad0 100644
--- a/old_docs/API_docs_v72/methods/channels_deleteMessages.md
+++ b/old_docs/API_docs_v72/methods/channels_deleteMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_AffectedMessages = channels.deleteMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v72/methods/channels_deleteUserHistory.md b/old_docs/API_docs_v72/methods/channels_deleteUserHistory.md
index 0a4e7d82..33905a7e 100644
--- a/old_docs/API_docs_v72/methods/channels_deleteUserHistory.md
+++ b/old_docs/API_docs_v72/methods/channels_deleteUserHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedHistory = channels.deleteUserHistory({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v72/methods/channels_editAbout.md b/old_docs/API_docs_v72/methods/channels_editAbout.md
index 47111668..d5e090e0 100644
--- a/old_docs/API_docs_v72/methods/channels_editAbout.md
+++ b/old_docs/API_docs_v72/methods/channels_editAbout.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Bool = channels.editAbout({channel=InputChannel, about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
-|CHAT_ABOUT_TOO_LONG|Chat about too long|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
+|400|CHAT_ABOUT_TOO_LONG|Chat about too long|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v72/methods/channels_editAdmin.md b/old_docs/API_docs_v72/methods/channels_editAdmin.md
index 43858599..edb7cf55 100644
--- a/old_docs/API_docs_v72/methods/channels_editAdmin.md
+++ b/old_docs/API_docs_v72/methods/channels_editAdmin.md
@@ -44,19 +44,19 @@ Or, if you're into Lua:
Updates = channels.editAdmin({channel=InputChannel, user_id=InputUser, admin_rights=ChannelAdminRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ADMINS_TOO_MUCH|There are too many admins|
-|BOT_CHANNELS_NA|Bots can't edit admin privileges|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
-|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ADMINS_TOO_MUCH|There are too many admins|
+|400|BOT_CHANNELS_NA|Bots can't edit admin privileges|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
+|403|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v72/methods/channels_editBanned.md b/old_docs/API_docs_v72/methods/channels_editBanned.md
index cffb653e..1fd5f597 100644
--- a/old_docs/API_docs_v72/methods/channels_editBanned.md
+++ b/old_docs/API_docs_v72/methods/channels_editBanned.md
@@ -44,14 +44,14 @@ Or, if you're into Lua:
Updates = channels.editBanned({channel=InputChannel, user_id=InputUser, banned_rights=ChannelBannedRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ADMIN_INVALID|You're not an admin|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ADMIN_INVALID|You're not an admin|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v72/methods/channels_editPhoto.md b/old_docs/API_docs_v72/methods/channels_editPhoto.md
index bec0ba48..caef32d5 100644
--- a/old_docs/API_docs_v72/methods/channels_editPhoto.md
+++ b/old_docs/API_docs_v72/methods/channels_editPhoto.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editPhoto({channel=InputChannel, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|PHOTO_INVALID|Photo invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|PHOTO_INVALID|Photo invalid|
diff --git a/old_docs/API_docs_v72/methods/channels_editTitle.md b/old_docs/API_docs_v72/methods/channels_editTitle.md
index b5efeb39..d7cb33da 100644
--- a/old_docs/API_docs_v72/methods/channels_editTitle.md
+++ b/old_docs/API_docs_v72/methods/channels_editTitle.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editTitle({channel=InputChannel, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v72/methods/channels_exportInvite.md b/old_docs/API_docs_v72/methods/channels_exportInvite.md
index 0918b3e7..9d578deb 100644
--- a/old_docs/API_docs_v72/methods/channels_exportInvite.md
+++ b/old_docs/API_docs_v72/methods/channels_exportInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ExportedChatInvite = channels.exportInvite({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INVITE_HASH_EXPIRED|The invite link has expired|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
diff --git a/old_docs/API_docs_v72/methods/channels_exportMessageLink.md b/old_docs/API_docs_v72/methods/channels_exportMessageLink.md
index 66cd7584..2e92ee5e 100644
--- a/old_docs/API_docs_v72/methods/channels_exportMessageLink.md
+++ b/old_docs/API_docs_v72/methods/channels_exportMessageLink.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
ExportedMessageLink = channels.exportMessageLink({channel=InputChannel, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v72/methods/channels_getAdminLog.md b/old_docs/API_docs_v72/methods/channels_getAdminLog.md
index 377c7320..adb87748 100644
--- a/old_docs/API_docs_v72/methods/channels_getAdminLog.md
+++ b/old_docs/API_docs_v72/methods/channels_getAdminLog.md
@@ -48,12 +48,12 @@ Or, if you're into Lua:
channels_AdminLogResults = channels.getAdminLog({channel=InputChannel, q='string', events_filter=ChannelAdminLogEventsFilter, admins={InputUser}, max_id=long, min_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v72/methods/channels_getChannels.md b/old_docs/API_docs_v72/methods/channels_getChannels.md
index 78d50641..95d7a188 100644
--- a/old_docs/API_docs_v72/methods/channels_getChannels.md
+++ b/old_docs/API_docs_v72/methods/channels_getChannels.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = channels.getChannels({id={InputChannel}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v72/methods/channels_getFullChannel.md b/old_docs/API_docs_v72/methods/channels_getFullChannel.md
index 45a8ec72..ebd53de4 100644
--- a/old_docs/API_docs_v72/methods/channels_getFullChannel.md
+++ b/old_docs/API_docs_v72/methods/channels_getFullChannel.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->channels->getFullChannel(['channel' => InputChannel, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = channels.getFullChannel({channel=InputChannel, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v72/methods/channels_getMessages.md b/old_docs/API_docs_v72/methods/channels_getMessages.md
index aa85d640..57bcc60f 100644
--- a/old_docs/API_docs_v72/methods/channels_getMessages.md
+++ b/old_docs/API_docs_v72/methods/channels_getMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_Messages = channels.getMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
diff --git a/old_docs/API_docs_v72/methods/channels_getParticipant.md b/old_docs/API_docs_v72/methods/channels_getParticipant.md
index 6633114f..808156fd 100644
--- a/old_docs/API_docs_v72/methods/channels_getParticipant.md
+++ b/old_docs/API_docs_v72/methods/channels_getParticipant.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
channels_ChannelParticipant = channels.getParticipant({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v72/methods/channels_getParticipants.md b/old_docs/API_docs_v72/methods/channels_getParticipants.md
index 5ff242e6..fb7a39df 100644
--- a/old_docs/API_docs_v72/methods/channels_getParticipants.md
+++ b/old_docs/API_docs_v72/methods/channels_getParticipants.md
@@ -46,14 +46,14 @@ Or, if you're into Lua:
channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, filter=ChannelParticipantsFilter, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v72/methods/channels_inviteToChannel.md b/old_docs/API_docs_v72/methods/channels_inviteToChannel.md
index f7093f13..d8c5e88a 100644
--- a/old_docs/API_docs_v72/methods/channels_inviteToChannel.md
+++ b/old_docs/API_docs_v72/methods/channels_inviteToChannel.md
@@ -43,25 +43,25 @@ Or, if you're into Lua:
Updates = channels.inviteToChannel({channel=InputChannel, users={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
-|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_BLOCKED|User blocked|
-|USER_BOT|Bots can only be admins in channels.|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_KICKED|This user was kicked from this supergroup/channel|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
+|400|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_BLOCKED|User blocked|
+|400|USER_BOT|Bots can only be admins in channels.|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_KICKED|This user was kicked from this supergroup/channel|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v72/methods/channels_joinChannel.md b/old_docs/API_docs_v72/methods/channels_joinChannel.md
index b056031a..a4a7c177 100644
--- a/old_docs/API_docs_v72/methods/channels_joinChannel.md
+++ b/old_docs/API_docs_v72/methods/channels_joinChannel.md
@@ -42,15 +42,15 @@ Or, if you're into Lua:
Updates = channels.joinChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
diff --git a/old_docs/API_docs_v72/methods/channels_leaveChannel.md b/old_docs/API_docs_v72/methods/channels_leaveChannel.md
index fdea13ba..6538d443 100644
--- a/old_docs/API_docs_v72/methods/channels_leaveChannel.md
+++ b/old_docs/API_docs_v72/methods/channels_leaveChannel.md
@@ -42,14 +42,14 @@ Or, if you're into Lua:
Updates = channels.leaveChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
-|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
diff --git a/old_docs/API_docs_v72/methods/channels_readHistory.md b/old_docs/API_docs_v72/methods/channels_readHistory.md
index 93dc075f..3532dae0 100644
--- a/old_docs/API_docs_v72/methods/channels_readHistory.md
+++ b/old_docs/API_docs_v72/methods/channels_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readHistory({channel=InputChannel, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v72/methods/channels_readMessageContents.md b/old_docs/API_docs_v72/methods/channels_readMessageContents.md
index 80ddf2b0..8cd8c620 100644
--- a/old_docs/API_docs_v72/methods/channels_readMessageContents.md
+++ b/old_docs/API_docs_v72/methods/channels_readMessageContents.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readMessageContents({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v72/methods/channels_reportSpam.md b/old_docs/API_docs_v72/methods/channels_reportSpam.md
index db80676a..7e273cc5 100644
--- a/old_docs/API_docs_v72/methods/channels_reportSpam.md
+++ b/old_docs/API_docs_v72/methods/channels_reportSpam.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
Bool = channels.reportSpam({channel=InputChannel, user_id=InputUser, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
diff --git a/old_docs/API_docs_v72/methods/channels_setStickers.md b/old_docs/API_docs_v72/methods/channels_setStickers.md
index 10cd68bf..c9b95527 100644
--- a/old_docs/API_docs_v72/methods/channels_setStickers.md
+++ b/old_docs/API_docs_v72/methods/channels_setStickers.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.setStickers({channel=InputChannel, stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PARTICIPANTS_TOO_FEW|Not enough participants|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PARTICIPANTS_TOO_FEW|Not enough participants|
diff --git a/old_docs/API_docs_v72/methods/channels_toggleInvites.md b/old_docs/API_docs_v72/methods/channels_toggleInvites.md
index e5d3fba1..6266d30b 100644
--- a/old_docs/API_docs_v72/methods/channels_toggleInvites.md
+++ b/old_docs/API_docs_v72/methods/channels_toggleInvites.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.toggleInvites({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v72/methods/channels_toggleSignatures.md b/old_docs/API_docs_v72/methods/channels_toggleSignatures.md
index cdfc0fda..f8624946 100644
--- a/old_docs/API_docs_v72/methods/channels_toggleSignatures.md
+++ b/old_docs/API_docs_v72/methods/channels_toggleSignatures.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = channels.toggleSignatures({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v72/methods/channels_updatePinnedMessage.md b/old_docs/API_docs_v72/methods/channels_updatePinnedMessage.md
index 53733a22..37d7c3c0 100644
--- a/old_docs/API_docs_v72/methods/channels_updatePinnedMessage.md
+++ b/old_docs/API_docs_v72/methods/channels_updatePinnedMessage.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = channels.updatePinnedMessage({silent=Bool, channel=InputChannel, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v72/methods/channels_updateUsername.md b/old_docs/API_docs_v72/methods/channels_updateUsername.md
index 677712f9..48d250e6 100644
--- a/old_docs/API_docs_v72/methods/channels_updateUsername.md
+++ b/old_docs/API_docs_v72/methods/channels_updateUsername.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Bool = channels.updateUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_OCCUPIED|The provided username is already occupied|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
diff --git a/old_docs/API_docs_v72/methods/contacts_block.md b/old_docs/API_docs_v72/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v72/methods/contacts_block.md
+++ b/old_docs/API_docs_v72/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v72/methods/contacts_deleteContact.md b/old_docs/API_docs_v72/methods/contacts_deleteContact.md
index ba9569e4..a9321d64 100644
--- a/old_docs/API_docs_v72/methods/contacts_deleteContact.md
+++ b/old_docs/API_docs_v72/methods/contacts_deleteContact.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
contacts_Link = contacts.deleteContact({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v72/methods/contacts_deleteContacts.md b/old_docs/API_docs_v72/methods/contacts_deleteContacts.md
index bfc91fdd..3c8e90f0 100644
--- a/old_docs/API_docs_v72/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v72/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v72/methods/contacts_getStatuses.md b/old_docs/API_docs_v72/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v72/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v72/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v72/methods/contacts_getTopPeers.md b/old_docs/API_docs_v72/methods/contacts_getTopPeers.md
index 4dc13d08..9ad9ab01 100644
--- a/old_docs/API_docs_v72/methods/contacts_getTopPeers.md
+++ b/old_docs/API_docs_v72/methods/contacts_getTopPeers.md
@@ -50,10 +50,10 @@ Or, if you're into Lua:
contacts_TopPeers = contacts.getTopPeers({correspondents=Bool, bots_pm=Bool, bots_inline=Bool, phone_calls=Bool, groups=Bool, channels=Bool, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TYPES_EMPTY|No top peer type was provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TYPES_EMPTY|No top peer type was provided|
diff --git a/old_docs/API_docs_v72/methods/contacts_importCard.md b/old_docs/API_docs_v72/methods/contacts_importCard.md
index 15addde1..ed3d17fe 100644
--- a/old_docs/API_docs_v72/methods/contacts_importCard.md
+++ b/old_docs/API_docs_v72/methods/contacts_importCard.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
User = contacts.importCard({export_card={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|EXPORT_CARD_INVALID|Provided card is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EXPORT_CARD_INVALID|Provided card is invalid|
diff --git a/old_docs/API_docs_v72/methods/contacts_resetTopPeerRating.md b/old_docs/API_docs_v72/methods/contacts_resetTopPeerRating.md
index 43cf1685..787be177 100644
--- a/old_docs/API_docs_v72/methods/contacts_resetTopPeerRating.md
+++ b/old_docs/API_docs_v72/methods/contacts_resetTopPeerRating.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = contacts.resetTopPeerRating({category=TopPeerCategory, peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v72/methods/contacts_resolveUsername.md b/old_docs/API_docs_v72/methods/contacts_resolveUsername.md
index fab56bb1..68f709db 100644
--- a/old_docs/API_docs_v72/methods/contacts_resolveUsername.md
+++ b/old_docs/API_docs_v72/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [contacts\_ResolvedPeer](../types/contacts_ResolvedPeer.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$contacts_ResolvedPeer = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+contacts_ResolvedPeer = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v72/methods/contacts_search.md b/old_docs/API_docs_v72/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v72/methods/contacts_search.md
+++ b/old_docs/API_docs_v72/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v72/methods/contacts_unblock.md b/old_docs/API_docs_v72/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v72/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v72/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v72/methods/help_getCdnConfig.md b/old_docs/API_docs_v72/methods/help_getCdnConfig.md
index 9e047a1d..ba526365 100644
--- a/old_docs/API_docs_v72/methods/help_getCdnConfig.md
+++ b/old_docs/API_docs_v72/methods/help_getCdnConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
CdnConfig = help.getCdnConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v72/methods/help_getConfig.md b/old_docs/API_docs_v72/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v72/methods/help_getConfig.md
+++ b/old_docs/API_docs_v72/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v72/methods/initConnection.md b/old_docs/API_docs_v72/methods/initConnection.md
index 05ba27af..49e2b675 100644
--- a/old_docs/API_docs_v72/methods/initConnection.md
+++ b/old_docs/API_docs_v72/methods/initConnection.md
@@ -49,11 +49,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', system_lang_code='string', lang_pack='string', lang_code='string', query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v72/methods/invokeWithLayer.md b/old_docs/API_docs_v72/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/old_docs/API_docs_v72/methods/invokeWithLayer.md
+++ b/old_docs/API_docs_v72/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v72/methods/langpack_getDifference.md b/old_docs/API_docs_v72/methods/langpack_getDifference.md
index ed7e4028..70295776 100644
--- a/old_docs/API_docs_v72/methods/langpack_getDifference.md
+++ b/old_docs/API_docs_v72/methods/langpack_getDifference.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getDifference({from_version=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v72/methods/langpack_getLangPack.md b/old_docs/API_docs_v72/methods/langpack_getLangPack.md
index 50684fef..de6ab2ab 100644
--- a/old_docs/API_docs_v72/methods/langpack_getLangPack.md
+++ b/old_docs/API_docs_v72/methods/langpack_getLangPack.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getLangPack({lang_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v72/methods/langpack_getLanguages.md b/old_docs/API_docs_v72/methods/langpack_getLanguages.md
index 7ffc0f3b..0b09a845 100644
--- a/old_docs/API_docs_v72/methods/langpack_getLanguages.md
+++ b/old_docs/API_docs_v72/methods/langpack_getLanguages.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_LangPackLanguage = langpack.getLanguages({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v72/methods/langpack_getStrings.md b/old_docs/API_docs_v72/methods/langpack_getStrings.md
index 1101ec91..3276120f 100644
--- a/old_docs/API_docs_v72/methods/langpack_getStrings.md
+++ b/old_docs/API_docs_v72/methods/langpack_getStrings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Vector_of_LangPackString = langpack.getStrings({lang_code='string', keys={'string'}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v72/methods/messages_acceptEncryption.md b/old_docs/API_docs_v72/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v72/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v72/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v72/methods/messages_addChatUser.md b/old_docs/API_docs_v72/methods/messages_addChatUser.md
index bc0d6253..b5e164b2 100644
--- a/old_docs/API_docs_v72/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v72/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
Updates = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v72/methods/messages_checkChatInvite.md b/old_docs/API_docs_v72/methods/messages_checkChatInvite.md
index de28b09b..0d13d55e 100644
--- a/old_docs/API_docs_v72/methods/messages_checkChatInvite.md
+++ b/old_docs/API_docs_v72/methods/messages_checkChatInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ChatInvite = messages.checkChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
diff --git a/old_docs/API_docs_v72/methods/messages_createChat.md b/old_docs/API_docs_v72/methods/messages_createChat.md
index 8f6e9672..b2623f1d 100644
--- a/old_docs/API_docs_v72/methods/messages_createChat.md
+++ b/old_docs/API_docs_v72/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v72/methods/messages_deleteChatUser.md b/old_docs/API_docs_v72/methods/messages_deleteChatUser.md
index 63529571..11b9b220 100644
--- a/old_docs/API_docs_v72/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v72/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v72/methods/messages_deleteHistory.md b/old_docs/API_docs_v72/methods/messages_deleteHistory.md
index 2ade177e..338c2cdf 100644
--- a/old_docs/API_docs_v72/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v72/methods/messages_deleteHistory.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({just_clear=Bool, peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v72/methods/messages_deleteMessages.md b/old_docs/API_docs_v72/methods/messages_deleteMessages.md
index 4c65080a..41517dd0 100644
--- a/old_docs/API_docs_v72/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v72/methods/messages_deleteMessages.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.deleteMessages({revoke=Bool, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v72/methods/messages_discardEncryption.md b/old_docs/API_docs_v72/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v72/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v72/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v72/methods/messages_editChatAdmin.md b/old_docs/API_docs_v72/methods/messages_editChatAdmin.md
index 2b4dc94c..6f6c1376 100644
--- a/old_docs/API_docs_v72/methods/messages_editChatAdmin.md
+++ b/old_docs/API_docs_v72/methods/messages_editChatAdmin.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.editChatAdmin({chat_id=InputPeer, user_id=InputUser, is_admin=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v72/methods/messages_editChatPhoto.md b/old_docs/API_docs_v72/methods/messages_editChatPhoto.md
index 2a82c232..a21a03b9 100644
--- a/old_docs/API_docs_v72/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v72/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Updates = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v72/methods/messages_editChatTitle.md b/old_docs/API_docs_v72/methods/messages_editChatTitle.md
index 2c338ad6..72f78741 100644
--- a/old_docs/API_docs_v72/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v72/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v72/methods/messages_editInlineBotMessage.md b/old_docs/API_docs_v72/methods/messages_editInlineBotMessage.md
index f22642f2..c274cbb9 100644
--- a/old_docs/API_docs_v72/methods/messages_editInlineBotMessage.md
+++ b/old_docs/API_docs_v72/methods/messages_editInlineBotMessage.md
@@ -95,11 +95,11 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
diff --git a/old_docs/API_docs_v72/methods/messages_editMessage.md b/old_docs/API_docs_v72/methods/messages_editMessage.md
index b286c713..a594ece1 100644
--- a/old_docs/API_docs_v72/methods/messages_editMessage.md
+++ b/old_docs/API_docs_v72/methods/messages_editMessage.md
@@ -98,20 +98,20 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v72/methods/messages_exportChatInvite.md b/old_docs/API_docs_v72/methods/messages_exportChatInvite.md
index f3449e79..bc6272e4 100644
--- a/old_docs/API_docs_v72/methods/messages_exportChatInvite.md
+++ b/old_docs/API_docs_v72/methods/messages_exportChatInvite.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
ExportedChatInvite = messages.exportChatInvite({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v72/methods/messages_faveSticker.md b/old_docs/API_docs_v72/methods/messages_faveSticker.md
index a8b1ab56..9f9f423d 100644
--- a/old_docs/API_docs_v72/methods/messages_faveSticker.md
+++ b/old_docs/API_docs_v72/methods/messages_faveSticker.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.faveSticker({id=InputDocument, unfave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v72/methods/messages_forwardMessage.md b/old_docs/API_docs_v72/methods/messages_forwardMessage.md
index c8e0b18d..95f6d2f3 100644
--- a/old_docs/API_docs_v72/methods/messages_forwardMessage.md
+++ b/old_docs/API_docs_v72/methods/messages_forwardMessage.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Updates = messages.forwardMessage({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|YOU_BLOCKED_USER|You blocked this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|YOU_BLOCKED_USER|You blocked this user|
diff --git a/old_docs/API_docs_v72/methods/messages_forwardMessages.md b/old_docs/API_docs_v72/methods/messages_forwardMessages.md
index db772b23..2d751dcb 100644
--- a/old_docs/API_docs_v72/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v72/methods/messages_forwardMessages.md
@@ -47,29 +47,29 @@ Or, if you're into Lua:
Updates = messages.forwardMessages({silent=Bool, background=Bool, with_my_score=Bool, from_peer=InputPeer, id={int}, to_peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v72/methods/messages_getBotCallbackAnswer.md b/old_docs/API_docs_v72/methods/messages_getBotCallbackAnswer.md
index f97fa5b0..3f8cc23b 100644
--- a/old_docs/API_docs_v72/methods/messages_getBotCallbackAnswer.md
+++ b/old_docs/API_docs_v72/methods/messages_getBotCallbackAnswer.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
messages_BotCallbackAnswer = messages.getBotCallbackAnswer({game=Bool, peer=InputPeer, msg_id=int, data='bytes', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v72/methods/messages_getChats.md b/old_docs/API_docs_v72/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/old_docs/API_docs_v72/methods/messages_getChats.md
+++ b/old_docs/API_docs_v72/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v72/methods/messages_getCommonChats.md b/old_docs/API_docs_v72/methods/messages_getCommonChats.md
index 9470a0ee..cff23c3f 100644
--- a/old_docs/API_docs_v72/methods/messages_getCommonChats.md
+++ b/old_docs/API_docs_v72/methods/messages_getCommonChats.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_Chats = messages.getCommonChats({user_id=InputUser, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v72/methods/messages_getDhConfig.md b/old_docs/API_docs_v72/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v72/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v72/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v72/methods/messages_getDialogs.md b/old_docs/API_docs_v72/methods/messages_getDialogs.md
index 28590399..e95ea75b 100644
--- a/old_docs/API_docs_v72/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v72/methods/messages_getDialogs.md
@@ -46,13 +46,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({exclude_pinned=Bool, offset_date=int, offset_id=int, offset_peer=InputPeer, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v72/methods/messages_getDocumentByHash.md b/old_docs/API_docs_v72/methods/messages_getDocumentByHash.md
index 73a235d5..06469c52 100644
--- a/old_docs/API_docs_v72/methods/messages_getDocumentByHash.md
+++ b/old_docs/API_docs_v72/methods/messages_getDocumentByHash.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Document = messages.getDocumentByHash({sha256='bytes', size=int, mime_type='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
diff --git a/old_docs/API_docs_v72/methods/messages_getFullChat.md b/old_docs/API_docs_v72/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v72/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v72/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v72/methods/messages_getGameHighScores.md b/old_docs/API_docs_v72/methods/messages_getGameHighScores.md
index 249e1d09..5c484bbb 100644
--- a/old_docs/API_docs_v72/methods/messages_getGameHighScores.md
+++ b/old_docs/API_docs_v72/methods/messages_getGameHighScores.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
messages_HighScores = messages.getGameHighScores({peer=InputPeer, id=int, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v72/methods/messages_getHistory.md b/old_docs/API_docs_v72/methods/messages_getHistory.md
index ced9753f..68f746ba 100644
--- a/old_docs/API_docs_v72/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v72/methods/messages_getHistory.md
@@ -48,16 +48,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset_id=int, offset_date=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v72/methods/messages_getInlineBotResults.md b/old_docs/API_docs_v72/methods/messages_getInlineBotResults.md
index 1efcb412..17d678b7 100644
--- a/old_docs/API_docs_v72/methods/messages_getInlineBotResults.md
+++ b/old_docs/API_docs_v72/methods/messages_getInlineBotResults.md
@@ -46,13 +46,13 @@ Or, if you're into Lua:
messages_BotResults = messages.getInlineBotResults({bot=InputUser, peer=InputPeer, geo_point=InputGeoPoint, query='string', offset='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
-|BOT_INVALID|This is not a valid bot|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
+|400|BOT_INVALID|This is not a valid bot|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v72/methods/messages_getInlineGameHighScores.md b/old_docs/API_docs_v72/methods/messages_getInlineGameHighScores.md
index e68c6db8..ac33b6b8 100644
--- a/old_docs/API_docs_v72/methods/messages_getInlineGameHighScores.md
+++ b/old_docs/API_docs_v72/methods/messages_getInlineGameHighScores.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_HighScores = messages.getInlineGameHighScores({id=InputBotInlineMessageID, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v72/methods/messages_getMessageEditData.md b/old_docs/API_docs_v72/methods/messages_getMessageEditData.md
index 7f1b7164..b907d78c 100644
--- a/old_docs/API_docs_v72/methods/messages_getMessageEditData.md
+++ b/old_docs/API_docs_v72/methods/messages_getMessageEditData.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_MessageEditData = messages.getMessageEditData({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v72/methods/messages_getMessagesViews.md b/old_docs/API_docs_v72/methods/messages_getMessagesViews.md
index 3d490315..143e568c 100644
--- a/old_docs/API_docs_v72/methods/messages_getMessagesViews.md
+++ b/old_docs/API_docs_v72/methods/messages_getMessagesViews.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
Vector_of_int = messages.getMessagesViews({peer=InputPeer, id={int}, increment=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v72/methods/messages_getPeerDialogs.md b/old_docs/API_docs_v72/methods/messages_getPeerDialogs.md
index 6811001a..0c770183 100644
--- a/old_docs/API_docs_v72/methods/messages_getPeerDialogs.md
+++ b/old_docs/API_docs_v72/methods/messages_getPeerDialogs.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPeerDialogs({peers={InputPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v72/methods/messages_getPeerSettings.md b/old_docs/API_docs_v72/methods/messages_getPeerSettings.md
index 26dafb9b..69032ff5 100644
--- a/old_docs/API_docs_v72/methods/messages_getPeerSettings.md
+++ b/old_docs/API_docs_v72/methods/messages_getPeerSettings.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
PeerSettings = messages.getPeerSettings({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v72/methods/messages_getPinnedDialogs.md b/old_docs/API_docs_v72/methods/messages_getPinnedDialogs.md
index 828d622e..f106098d 100644
--- a/old_docs/API_docs_v72/methods/messages_getPinnedDialogs.md
+++ b/old_docs/API_docs_v72/methods/messages_getPinnedDialogs.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPinnedDialogs({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FOLDER_ID_INVALID|Invalid folder ID|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FOLDER_ID_INVALID|Invalid folder ID|
diff --git a/old_docs/API_docs_v72/methods/messages_getStickerSet.md b/old_docs/API_docs_v72/methods/messages_getStickerSet.md
index 57bce84d..487316cc 100644
--- a/old_docs/API_docs_v72/methods/messages_getStickerSet.md
+++ b/old_docs/API_docs_v72/methods/messages_getStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_StickerSet = messages.getStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v72/methods/messages_getUnreadMentions.md b/old_docs/API_docs_v72/methods/messages_getUnreadMentions.md
index 1fa1f269..923229eb 100644
--- a/old_docs/API_docs_v72/methods/messages_getUnreadMentions.md
+++ b/old_docs/API_docs_v72/methods/messages_getUnreadMentions.md
@@ -47,10 +47,10 @@ Or, if you're into Lua:
messages_Messages = messages.getUnreadMentions({peer=InputPeer, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v72/methods/messages_getWebPage.md b/old_docs/API_docs_v72/methods/messages_getWebPage.md
index ce51ff41..63ef5e93 100644
--- a/old_docs/API_docs_v72/methods/messages_getWebPage.md
+++ b/old_docs/API_docs_v72/methods/messages_getWebPage.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
WebPage = messages.getWebPage({url='string', hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|WC_CONVERT_URL_INVALID|WC convert URL invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|WC_CONVERT_URL_INVALID|WC convert URL invalid|
diff --git a/old_docs/API_docs_v72/methods/messages_hideReportSpam.md b/old_docs/API_docs_v72/methods/messages_hideReportSpam.md
index c4bf7399..57756d2e 100644
--- a/old_docs/API_docs_v72/methods/messages_hideReportSpam.md
+++ b/old_docs/API_docs_v72/methods/messages_hideReportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.hideReportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v72/methods/messages_importChatInvite.md b/old_docs/API_docs_v72/methods/messages_importChatInvite.md
index 12120867..101b4b19 100644
--- a/old_docs/API_docs_v72/methods/messages_importChatInvite.md
+++ b/old_docs/API_docs_v72/methods/messages_importChatInvite.md
@@ -42,16 +42,16 @@ Or, if you're into Lua:
Updates = messages.importChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v72/methods/messages_installStickerSet.md b/old_docs/API_docs_v72/methods/messages_installStickerSet.md
index 21a57a85..67f2aca0 100644
--- a/old_docs/API_docs_v72/methods/messages_installStickerSet.md
+++ b/old_docs/API_docs_v72/methods/messages_installStickerSet.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_StickerSetInstallResult = messages.installStickerSet({stickerset=InputStickerSet, archived=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v72/methods/messages_migrateChat.md b/old_docs/API_docs_v72/methods/messages_migrateChat.md
index a72f4c11..ee4010eb 100644
--- a/old_docs/API_docs_v72/methods/messages_migrateChat.md
+++ b/old_docs/API_docs_v72/methods/messages_migrateChat.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
Updates = messages.migrateChat({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v72/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v72/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v72/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v72/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v72/methods/messages_readHistory.md b/old_docs/API_docs_v72/methods/messages_readHistory.md
index 2ad5cd09..a7f0eca7 100644
--- a/old_docs/API_docs_v72/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v72/methods/messages_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.readHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v72/methods/messages_receivedQueue.md b/old_docs/API_docs_v72/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v72/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v72/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v72/methods/messages_reorderPinnedDialogs.md b/old_docs/API_docs_v72/methods/messages_reorderPinnedDialogs.md
index d6759a55..d89bf27a 100644
--- a/old_docs/API_docs_v72/methods/messages_reorderPinnedDialogs.md
+++ b/old_docs/API_docs_v72/methods/messages_reorderPinnedDialogs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.reorderPinnedDialogs({force=Bool, order={InputPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v72/methods/messages_reportEncryptedSpam.md b/old_docs/API_docs_v72/methods/messages_reportEncryptedSpam.md
index 9b1e868b..aeac27ef 100644
--- a/old_docs/API_docs_v72/methods/messages_reportEncryptedSpam.md
+++ b/old_docs/API_docs_v72/methods/messages_reportEncryptedSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportEncryptedSpam({peer=InputEncryptedChat, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v72/methods/messages_reportSpam.md b/old_docs/API_docs_v72/methods/messages_reportSpam.md
index e92fba13..dc256e55 100644
--- a/old_docs/API_docs_v72/methods/messages_reportSpam.md
+++ b/old_docs/API_docs_v72/methods/messages_reportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v72/methods/messages_requestEncryption.md b/old_docs/API_docs_v72/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v72/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v72/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v72/methods/messages_saveDraft.md b/old_docs/API_docs_v72/methods/messages_saveDraft.md
index 791ce234..ea6d407e 100644
--- a/old_docs/API_docs_v72/methods/messages_saveDraft.md
+++ b/old_docs/API_docs_v72/methods/messages_saveDraft.md
@@ -89,10 +89,10 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v72/methods/messages_saveGif.md b/old_docs/API_docs_v72/methods/messages_saveGif.md
index f504ff9e..010e17ec 100644
--- a/old_docs/API_docs_v72/methods/messages_saveGif.md
+++ b/old_docs/API_docs_v72/methods/messages_saveGif.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.saveGif({id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|GIF_ID_INVALID|The provided GIF ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|GIF_ID_INVALID|The provided GIF ID is invalid|
diff --git a/old_docs/API_docs_v72/methods/messages_saveRecentSticker.md b/old_docs/API_docs_v72/methods/messages_saveRecentSticker.md
index 98c74efd..072b6fe9 100644
--- a/old_docs/API_docs_v72/methods/messages_saveRecentSticker.md
+++ b/old_docs/API_docs_v72/methods/messages_saveRecentSticker.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.saveRecentSticker({attached=Bool, id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v72/methods/messages_search.md b/old_docs/API_docs_v72/methods/messages_search.md
index 7b95c3cf..a0a88452 100644
--- a/old_docs/API_docs_v72/methods/messages_search.md
+++ b/old_docs/API_docs_v72/methods/messages_search.md
@@ -52,16 +52,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({peer=InputPeer, q='string', from_id=InputUser, filter=MessagesFilter, min_date=int, max_date=int, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v72/methods/messages_searchGifs.md b/old_docs/API_docs_v72/methods/messages_searchGifs.md
index 7be4173b..1602d35e 100644
--- a/old_docs/API_docs_v72/methods/messages_searchGifs.md
+++ b/old_docs/API_docs_v72/methods/messages_searchGifs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_FoundGifs = messages.searchGifs({q='string', offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v72/methods/messages_searchGlobal.md b/old_docs/API_docs_v72/methods/messages_searchGlobal.md
index fb38398b..c8da163c 100644
--- a/old_docs/API_docs_v72/methods/messages_searchGlobal.md
+++ b/old_docs/API_docs_v72/methods/messages_searchGlobal.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
messages_Messages = messages.searchGlobal({q='string', offset_date=int, offset_peer=InputPeer, offset_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v72/methods/messages_sendEncrypted.md b/old_docs/API_docs_v72/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v72/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v72/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v72/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v72/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v72/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v72/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v72/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v72/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v72/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v72/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v72/methods/messages_sendInlineBotResult.md b/old_docs/API_docs_v72/methods/messages_sendInlineBotResult.md
index 9ffa02ae..a2b57f4d 100644
--- a/old_docs/API_docs_v72/methods/messages_sendInlineBotResult.md
+++ b/old_docs/API_docs_v72/methods/messages_sendInlineBotResult.md
@@ -48,15 +48,15 @@ Or, if you're into Lua:
Updates = messages.sendInlineBotResult({silent=Bool, background=Bool, clear_draft=Bool, peer=InputPeer, reply_to_msg_id=int, query_id=long, id='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INLINE_RESULT_EXPIRED|The inline query expired|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|QUERY_ID_EMPTY|The query ID is empty|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INLINE_RESULT_EXPIRED|The inline query expired|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|QUERY_ID_EMPTY|The query ID is empty|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v72/methods/messages_sendMedia.md b/old_docs/API_docs_v72/methods/messages_sendMedia.md
index 89dc5572..9bfd0743 100644
--- a/old_docs/API_docs_v72/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v72/methods/messages_sendMedia.md
@@ -54,31 +54,31 @@ Updates = messages.sendMedia({silent=Bool, background=Bool, clear_draft=Bool, pe
You can provide bot API reply_markup objects here.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v72/methods/messages_sendMessage.md b/old_docs/API_docs_v72/methods/messages_sendMessage.md
index 5641ebc3..e0ab305d 100644
--- a/old_docs/API_docs_v72/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v72/methods/messages_sendMessage.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v72/methods/messages_sendScreenshotNotification.md b/old_docs/API_docs_v72/methods/messages_sendScreenshotNotification.md
index 3f5bb36d..4e4e40f5 100644
--- a/old_docs/API_docs_v72/methods/messages_sendScreenshotNotification.md
+++ b/old_docs/API_docs_v72/methods/messages_sendScreenshotNotification.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = messages.sendScreenshotNotification({peer=InputPeer, reply_to_msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v72/methods/messages_setBotCallbackAnswer.md b/old_docs/API_docs_v72/methods/messages_setBotCallbackAnswer.md
index ed058b4f..630ca61c 100644
--- a/old_docs/API_docs_v72/methods/messages_setBotCallbackAnswer.md
+++ b/old_docs/API_docs_v72/methods/messages_setBotCallbackAnswer.md
@@ -52,11 +52,11 @@ Bool = messages.setBotCallbackAnswer({alert=Bool, query_id=long, message='string
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|URL_INVALID|Invalid URL provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|URL_INVALID|Invalid URL provided|
diff --git a/old_docs/API_docs_v72/methods/messages_setBotPrecheckoutResults.md b/old_docs/API_docs_v72/methods/messages_setBotPrecheckoutResults.md
index cc615123..d6e0e61b 100644
--- a/old_docs/API_docs_v72/methods/messages_setBotPrecheckoutResults.md
+++ b/old_docs/API_docs_v72/methods/messages_setBotPrecheckoutResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotPrecheckoutResults({success=Bool, query_id=long, error='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ERROR_TEXT_EMPTY|The provided error message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ERROR_TEXT_EMPTY|The provided error message is empty|
diff --git a/old_docs/API_docs_v72/methods/messages_setBotShippingResults.md b/old_docs/API_docs_v72/methods/messages_setBotShippingResults.md
index f3a86f4f..adc4f64f 100644
--- a/old_docs/API_docs_v72/methods/messages_setBotShippingResults.md
+++ b/old_docs/API_docs_v72/methods/messages_setBotShippingResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotShippingResults({query_id=long, error='string', shipping_options={ShippingOption}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
diff --git a/old_docs/API_docs_v72/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v72/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v72/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v72/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v72/methods/messages_setGameScore.md b/old_docs/API_docs_v72/methods/messages_setGameScore.md
index 548ee889..429b04c6 100644
--- a/old_docs/API_docs_v72/methods/messages_setGameScore.md
+++ b/old_docs/API_docs_v72/methods/messages_setGameScore.md
@@ -47,12 +47,12 @@ Or, if you're into Lua:
Updates = messages.setGameScore({edit_message=Bool, force=Bool, peer=InputPeer, id=int, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v72/methods/messages_setInlineBotResults.md b/old_docs/API_docs_v72/methods/messages_setInlineBotResults.md
index ab388e39..df4c30d4 100644
--- a/old_docs/API_docs_v72/methods/messages_setInlineBotResults.md
+++ b/old_docs/API_docs_v72/methods/messages_setInlineBotResults.md
@@ -48,23 +48,23 @@ Or, if you're into Lua:
Bool = messages.setInlineBotResults({gallery=Bool, private=Bool, query_id=long, results={InputBotInlineResult}, cache_time=int, next_offset='string', switch_pm=InlineBotSwitchPM, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ARTICLE_TITLE_EMPTY|The title of the article is empty|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|PHOTO_INVALID|Photo invalid|
-|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
-|QUERY_ID_INVALID|The query ID is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|RESULT_TYPE_INVALID|Result type invalid|
-|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
-|START_PARAM_INVALID|Start parameter invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ARTICLE_TITLE_EMPTY|The title of the article is empty|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|PHOTO_INVALID|Photo invalid|
+|400|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|RESULT_TYPE_INVALID|Result type invalid|
+|400|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
+|400|START_PARAM_INVALID|Start parameter invalid|
+|403|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v72/methods/messages_setInlineGameScore.md b/old_docs/API_docs_v72/methods/messages_setInlineGameScore.md
index 5eeb1540..62b163d5 100644
--- a/old_docs/API_docs_v72/methods/messages_setInlineGameScore.md
+++ b/old_docs/API_docs_v72/methods/messages_setInlineGameScore.md
@@ -46,11 +46,11 @@ Or, if you're into Lua:
Bool = messages.setInlineGameScore({edit_message=Bool, force=Bool, id=InputBotInlineMessageID, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v72/methods/messages_setTyping.md b/old_docs/API_docs_v72/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v72/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v72/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v72/methods/messages_startBot.md b/old_docs/API_docs_v72/methods/messages_startBot.md
index aa2b2d00..4bf12aa6 100644
--- a/old_docs/API_docs_v72/methods/messages_startBot.md
+++ b/old_docs/API_docs_v72/methods/messages_startBot.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = messages.startBot({bot=InputUser, peer=InputPeer, start_param='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INVALID|This is not a valid bot|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|START_PARAM_EMPTY|The start parameter is empty|
-|START_PARAM_INVALID|Start parameter invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INVALID|This is not a valid bot|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|START_PARAM_EMPTY|The start parameter is empty|
+|400|START_PARAM_INVALID|Start parameter invalid|
diff --git a/old_docs/API_docs_v72/methods/messages_toggleChatAdmins.md b/old_docs/API_docs_v72/methods/messages_toggleChatAdmins.md
index 7851806d..8ea6e65e 100644
--- a/old_docs/API_docs_v72/methods/messages_toggleChatAdmins.md
+++ b/old_docs/API_docs_v72/methods/messages_toggleChatAdmins.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.toggleChatAdmins({chat_id=InputPeer, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v72/methods/messages_toggleDialogPin.md b/old_docs/API_docs_v72/methods/messages_toggleDialogPin.md
index 888f9a25..d44e4abc 100644
--- a/old_docs/API_docs_v72/methods/messages_toggleDialogPin.md
+++ b/old_docs/API_docs_v72/methods/messages_toggleDialogPin.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.toggleDialogPin({pinned=Bool, peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v72/methods/messages_uninstallStickerSet.md b/old_docs/API_docs_v72/methods/messages_uninstallStickerSet.md
index 59abc510..6b7a2006 100644
--- a/old_docs/API_docs_v72/methods/messages_uninstallStickerSet.md
+++ b/old_docs/API_docs_v72/methods/messages_uninstallStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.uninstallStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v72/methods/messages_uploadMedia.md b/old_docs/API_docs_v72/methods/messages_uploadMedia.md
index afc806fe..09fc074c 100644
--- a/old_docs/API_docs_v72/methods/messages_uploadMedia.md
+++ b/old_docs/API_docs_v72/methods/messages_uploadMedia.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
MessageMedia = messages.uploadMedia({peer=InputPeer, media=InputMedia, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v72/methods/payments_getPaymentForm.md b/old_docs/API_docs_v72/methods/payments_getPaymentForm.md
index e8e04f37..4c28121f 100644
--- a/old_docs/API_docs_v72/methods/payments_getPaymentForm.md
+++ b/old_docs/API_docs_v72/methods/payments_getPaymentForm.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentForm = payments.getPaymentForm({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v72/methods/payments_getPaymentReceipt.md b/old_docs/API_docs_v72/methods/payments_getPaymentReceipt.md
index acb1c209..0e2f76a8 100644
--- a/old_docs/API_docs_v72/methods/payments_getPaymentReceipt.md
+++ b/old_docs/API_docs_v72/methods/payments_getPaymentReceipt.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentReceipt = payments.getPaymentReceipt({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v72/methods/payments_sendPaymentForm.md b/old_docs/API_docs_v72/methods/payments_sendPaymentForm.md
index b8fa905d..1910ede8 100644
--- a/old_docs/API_docs_v72/methods/payments_sendPaymentForm.md
+++ b/old_docs/API_docs_v72/methods/payments_sendPaymentForm.md
@@ -45,10 +45,10 @@ Or, if you're into Lua:
payments_PaymentResult = payments.sendPaymentForm({msg_id=int, requested_info_id='string', shipping_option_id='string', credentials=InputPaymentCredentials, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v72/methods/payments_validateRequestedInfo.md b/old_docs/API_docs_v72/methods/payments_validateRequestedInfo.md
index 3b9da7e6..f18e1660 100644
--- a/old_docs/API_docs_v72/methods/payments_validateRequestedInfo.md
+++ b/old_docs/API_docs_v72/methods/payments_validateRequestedInfo.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
payments_ValidatedRequestedInfo = payments.validateRequestedInfo({save=Bool, msg_id=int, info=PaymentRequestedInfo, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v72/methods/phone_acceptCall.md b/old_docs/API_docs_v72/methods/phone_acceptCall.md
index b75ac65b..f5c58f01 100644
--- a/old_docs/API_docs_v72/methods/phone_acceptCall.md
+++ b/old_docs/API_docs_v72/methods/phone_acceptCall.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->acceptCall(['peer' => InputPhoneCall, 'g_b' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.acceptCall({peer=InputPhoneCall, g_b='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
diff --git a/old_docs/API_docs_v72/methods/phone_confirmCall.md b/old_docs/API_docs_v72/methods/phone_confirmCall.md
index 1a75563d..468307cc 100644
--- a/old_docs/API_docs_v72/methods/phone_confirmCall.md
+++ b/old_docs/API_docs_v72/methods/phone_confirmCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->confirmCall(['peer' => InputPhoneCall, 'g_a' => 'bytes', 'key_fingerprint' => long, 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.confirmCall({peer=InputPhoneCall, g_a='bytes', key_fingerprint=long, protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v72/methods/phone_discardCall.md b/old_docs/API_docs_v72/methods/phone_discardCall.md
index e50456eb..ffaa18ea 100644
--- a/old_docs/API_docs_v72/methods/phone_discardCall.md
+++ b/old_docs/API_docs_v72/methods/phone_discardCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|duration|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|reason|[PhoneCallDiscardReason](../types/PhoneCallDiscardReason.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|connection\_id|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [Updates](../types/Updates.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Updates = $MadelineProto->phone->discardCall(['peer' => InputPhoneCall, 'duration' => int, 'reason' => PhoneCallDiscardReason, 'connection_id' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Updates = phone.discardCall({peer=InputPhoneCall, duration=int, reason=PhoneCallDiscardReason, connection_id=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v72/methods/phone_receivedCall.md b/old_docs/API_docs_v72/methods/phone_receivedCall.md
index c43bc8ac..6091424b 100644
--- a/old_docs/API_docs_v72/methods/phone_receivedCall.md
+++ b/old_docs/API_docs_v72/methods/phone_receivedCall.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Bool = phone.receivedCall({peer=InputPhoneCall, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_ALREADY_DECLINED|The call was already declined|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v72/methods/phone_requestCall.md b/old_docs/API_docs_v72/methods/phone_requestCall.md
index 9b8df564..c8e828f2 100644
--- a/old_docs/API_docs_v72/methods/phone_requestCall.md
+++ b/old_docs/API_docs_v72/methods/phone_requestCall.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Optional|
+|g\_a\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->requestCall(['user_id' => InputUser, 'g_a_hash' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.requestCall({user_id=InputUser, g_a_hash='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
+|400|PARTICIPANT_VERSION_OUTDATED|The other participant does not use an up to date telegram client with support for calls|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|403|USER_IS_BLOCKED|You were blocked by this user|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v72/methods/phone_saveCallDebug.md b/old_docs/API_docs_v72/methods/phone_saveCallDebug.md
index 8acbc353..1e793c05 100644
--- a/old_docs/API_docs_v72/methods/phone_saveCallDebug.md
+++ b/old_docs/API_docs_v72/methods/phone_saveCallDebug.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = phone.saveCallDebug({peer=InputPhoneCall, debug=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
-|DATA_JSON_INVALID|The provided JSON data is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|DATA_JSON_INVALID|The provided JSON data is invalid|
diff --git a/old_docs/API_docs_v72/methods/phone_setCallRating.md b/old_docs/API_docs_v72/methods/phone_setCallRating.md
index 9bc6bdd0..9daed209 100644
--- a/old_docs/API_docs_v72/methods/phone_setCallRating.md
+++ b/old_docs/API_docs_v72/methods/phone_setCallRating.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Updates = phone.setCallRating({peer=InputPhoneCall, rating=int, comment='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v72/methods/photos_getUserPhotos.md b/old_docs/API_docs_v72/methods/photos_getUserPhotos.md
index 57f5772b..a01f3180 100644
--- a/old_docs/API_docs_v72/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v72/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v72/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v72/methods/photos_updateProfilePhoto.md
index cca2fe30..f7c91ec6 100644
--- a/old_docs/API_docs_v72/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v72/methods/photos_updateProfilePhoto.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v72/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v72/methods/photos_uploadProfilePhoto.md
index 457bade8..badde2de 100644
--- a/old_docs/API_docs_v72/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v72/methods/photos_uploadProfilePhoto.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v72/methods/stickers_addStickerToSet.md b/old_docs/API_docs_v72/methods/stickers_addStickerToSet.md
index 78e8437c..b1fa2aad 100644
--- a/old_docs/API_docs_v72/methods/stickers_addStickerToSet.md
+++ b/old_docs/API_docs_v72/methods/stickers_addStickerToSet.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.addStickerToSet({stickerset=InputStickerSet, sticker=InputStickerSetItem, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v72/methods/stickers_changeStickerPosition.md b/old_docs/API_docs_v72/methods/stickers_changeStickerPosition.md
index cddc1cbb..98dde67e 100644
--- a/old_docs/API_docs_v72/methods/stickers_changeStickerPosition.md
+++ b/old_docs/API_docs_v72/methods/stickers_changeStickerPosition.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.changeStickerPosition({sticker=InputDocument, position=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/old_docs/API_docs_v72/methods/stickers_createStickerSet.md b/old_docs/API_docs_v72/methods/stickers_createStickerSet.md
index 41e4ad11..741e0ad6 100644
--- a/old_docs/API_docs_v72/methods/stickers_createStickerSet.md
+++ b/old_docs/API_docs_v72/methods/stickers_createStickerSet.md
@@ -46,18 +46,18 @@ Or, if you're into Lua:
messages_StickerSet = stickers.createStickerSet({masks=Bool, user_id=InputUser, title='string', short_name='string', stickers={InputStickerSetItem}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|PACK_SHORT_NAME_INVALID|Short pack name invalid|
-|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|STICKER_EMOJI_INVALID|Sticker emoji invalid|
-|STICKER_FILE_INVALID|Sticker file invalid|
-|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
-|STICKERS_EMPTY|No sticker provided|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|PACK_SHORT_NAME_INVALID|Short pack name invalid|
+|400|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|STICKER_EMOJI_INVALID|Sticker emoji invalid|
+|400|STICKER_FILE_INVALID|Sticker file invalid|
+|400|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
+|400|STICKERS_EMPTY|No sticker provided|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v72/methods/stickers_removeStickerFromSet.md b/old_docs/API_docs_v72/methods/stickers_removeStickerFromSet.md
index ea4621f2..d1fc4339 100644
--- a/old_docs/API_docs_v72/methods/stickers_removeStickerFromSet.md
+++ b/old_docs/API_docs_v72/methods/stickers_removeStickerFromSet.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.removeStickerFromSet({sticker=InputDocument, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/old_docs/API_docs_v72/methods/updates_getChannelDifference.md b/old_docs/API_docs_v72/methods/updates_getChannelDifference.md
index 6fa79529..9735c14a 100644
--- a/old_docs/API_docs_v72/methods/updates_getChannelDifference.md
+++ b/old_docs/API_docs_v72/methods/updates_getChannelDifference.md
@@ -7,8 +7,56 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|force|[Bool](../types/Bool.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|filter|[ChannelMessagesFilter](../types/ChannelMessagesFilter.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_ChannelDifference](../types/updates_ChannelDifference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_ChannelDifference = $MadelineProto->updates->getChannelDifference(['force' => Bool, 'channel' => InputChannel, 'filter' => ChannelMessagesFilter, 'pts' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_ChannelDifference = updates.getChannelDifference({force=Bool, channel=InputChannel, filter=ChannelMessagesFilter, pts=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|400|RANGES_INVALID|Invalid range provided|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v72/methods/updates_getDifference.md b/old_docs/API_docs_v72/methods/updates_getDifference.md
index 33e7d7f2..bcfac4e2 100644
--- a/old_docs/API_docs_v72/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v72/methods/updates_getDifference.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|pts\_total\_limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'pts_total_limit' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, pts_total_limit=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v72/methods/updates_getState.md b/old_docs/API_docs_v72/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v72/methods/updates_getState.md
+++ b/old_docs/API_docs_v72/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v72/methods/upload_getCdnFile.md b/old_docs/API_docs_v72/methods/upload_getCdnFile.md
index 5e5b3f43..be9ad311 100644
--- a/old_docs/API_docs_v72/methods/upload_getCdnFile.md
+++ b/old_docs/API_docs_v72/methods/upload_getCdnFile.md
@@ -7,8 +7,40 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_CdnFile](../types/upload_CdnFile.md)
+
+### Can bots use this method: **NO**
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_CdnFile = $MadelineProto->upload->getCdnFile(['file_token' => 'bytes', 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_CdnFile = upload.getCdnFile({file_token='bytes', offset=int, limit=int, })
+```
+
diff --git a/old_docs/API_docs_v72/methods/upload_getCdnFileHashes.md b/old_docs/API_docs_v72/methods/upload_getCdnFileHashes.md
index ea6a8e75..4c7c341a 100644
--- a/old_docs/API_docs_v72/methods/upload_getCdnFileHashes.md
+++ b/old_docs/API_docs_v72/methods/upload_getCdnFileHashes.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Vector\_of\_CdnFileHash](../types/CdnFileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_CdnFileHash = $MadelineProto->upload->getCdnFileHashes(['file_token' => 'bytes', 'offset' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_CdnFileHash = upload.getCdnFileHashes({file_token='bytes', offset=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/old_docs/API_docs_v72/methods/upload_getFile.md b/old_docs/API_docs_v72/methods/upload_getFile.md
index c72e6090..d8b433d6 100644
--- a/old_docs/API_docs_v72/methods/upload_getFile.md
+++ b/old_docs/API_docs_v72/methods/upload_getFile.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v72/methods/upload_getWebFile.md b/old_docs/API_docs_v72/methods/upload_getWebFile.md
index 21179a66..7b63f96c 100644
--- a/old_docs/API_docs_v72/methods/upload_getWebFile.md
+++ b/old_docs/API_docs_v72/methods/upload_getWebFile.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
upload_WebFile = upload.getWebFile({location=InputWebFileLocation, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LOCATION_INVALID|The provided location is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LOCATION_INVALID|The provided location is invalid|
diff --git a/old_docs/API_docs_v72/methods/upload_reuploadCdnFile.md b/old_docs/API_docs_v72/methods/upload_reuploadCdnFile.md
index cc20d5e3..ef42f7b4 100644
--- a/old_docs/API_docs_v72/methods/upload_reuploadCdnFile.md
+++ b/old_docs/API_docs_v72/methods/upload_reuploadCdnFile.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|request\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Vector\_of\_CdnFileHash](../types/CdnFileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_CdnFileHash = $MadelineProto->upload->reuploadCdnFile(['file_token' => 'bytes', 'request_token' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_CdnFileHash = upload.reuploadCdnFile({file_token='bytes', request_token='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/old_docs/API_docs_v72/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v72/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v72/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v72/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v72/methods/upload_saveFilePart.md b/old_docs/API_docs_v72/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v72/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v72/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v72/methods/users_getFullUser.md b/old_docs/API_docs_v72/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v72/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v72/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v72/methods/users_getUsers.md b/old_docs/API_docs_v72/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v72/methods/users_getUsers.md
+++ b/old_docs/API_docs_v72/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v73/methods/README.md b/old_docs/API_docs_v73/methods/README.md
index 8920248a..a161eab6 100644
--- a/old_docs/API_docs_v73/methods/README.md
+++ b/old_docs/API_docs_v73/methods/README.md
@@ -30,419 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Add a sticker set: messages.installStickerSet
-
-* Add a sticker to favorites: messages.faveSticker
-
-* Add a sticker to recent stickers: messages.saveRecentSticker
-
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add phone number as contact: contacts.importContacts
-
-* Add sticker to stickerset: stickers.addStickerToSet
-
-* Add users to channel/supergroup: channels.inviteToChannel
-
-* Allow or disallow any user to invite users to this channel/supergroup: channels.toggleInvites
-
-* Block a user: contacts.block
-
-* Bots only: send payment form: payments.sendPaymentForm
-
-* Bots only: set precheckout results: messages.setBotPrecheckoutResults
-
-* Bots only: set shipping results: messages.setBotShippingResults
-
-* Bots only: set the callback answer (after a button was clicked): messages.setBotCallbackAnswer
-
-* Bots only: set the results of an inline query: messages.setInlineBotResults
-
-* Call inline bot: messages.getInlineBotResults
-
-* Change notification settings: account.updateNotifySettings
-
-* Change sticker position in photo: stickers.changeStickerPosition
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if about to edit a message or a media caption: messages.getMessageEditData
-
-* Check if an invitation link is valid: messages.checkChatInvite
-
-* Check if this phone number is registered on telegram: auth.checkPhone
-
-* Check if this username is available: account.checkUsername
-
-* Check if this username is free and can be assigned to a channel/supergroup: channels.checkUsername
-
-* Clear all recent stickers: messages.clearRecentStickers
-
-* Clear saved payments info: payments.clearSavedInfo
-
-* Confirm this phone number is associated to this account, obtain phone_code_hash from sendConfirmPhoneCode: account.confirmPhone
-
-* Convert chat to supergroup: messages.migrateChat
-
-* Create a chat (not supergroup): messages.createChat
-
-* Create channel/supergroup: channels.createChannel
-
-* Create stickerset: stickers.createStickerSet
-
-* Delete a certain session: account.resetAuthorization
-
-* Delete a channel/supergroup: channels.deleteChannel
-
-* Delete a contact: contacts.deleteContact
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete all messages of a user in a channel/supergroup: channels.deleteUserHistory
-
-* Delete all temporary authorization keys except the ones provided: auth.dropTempAuthKeys
-
-* Delete channel/supergroup messages: channels.deleteMessages
-
-* Delete chat history: messages.deleteHistory
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete the history of a supergroup/channel: channels.deleteHistory
-
-* Delete this account: account.deleteAccount
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Download a file through telegram: upload.getWebFile
-
-* Edit a message: messages.editMessage
-
-* Edit a sent inline message: messages.editInlineBotMessage
-
-* Edit admin permissions of a user in a channel/supergroup: channels.editAdmin
-
-* Edit admin permissions: messages.editChatAdmin
-
-* Edit the about text of a channel/supergroup: channels.editAbout
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the photo of a supergroup/channel: channels.editPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Edit the title of a supergroup/channel: channels.editTitle
-
-* Enable all users are admins in normal groups (not supergroups): messages.toggleChatAdmins
-
-* Enable or disable hidden history for new channel/supergroup users: channels.togglePreHistoryHidden
-
-* Export chat invite : messages.exportChatInvite
-
-* Export contact as card: contacts.exportCard
-
-* Export the invite link of a channel: channels.exportInvite
-
-* Forward message: messages.forwardMessage
-
-* Forward messages: messages.forwardMessages
-
-* Get CDN configuration: help.getCdnConfig
-
-* Get a stickerset: messages.getStickerSet
-
-* Get account TTL: account.getAccountTTL
-
-* Get admin log of a channel/supergroup: channels.getAdminLog
-
-* Get all archived stickers: messages.getArchivedStickers
-
-* Get all chats (not supergroups or channels): messages.getAllChats
-
-* Get all contacts: contacts.getContacts
-
-* Get all logged-in authorizations: account.getAuthorizations
-
-* Get all message drafts: messages.getAllDrafts
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get all supergroups/channels where you're admin: channels.getAdminedPublicChannels
-
-* Get and increase message views: messages.getMessagesViews
-
-* Get available languages: langpack.getLanguages
-
-* Get blocked users: contacts.getBlocked
-
-* Get call configuration: phone.getCallConfig
-
-* Get channel/supergroup messages: channels.getMessages
-
-* Get channel/supergroup participants (you should use `$MadelineProto->get_pwr_chat($id)` instead): channels.getParticipants
-
-* Get chats in common with a user: messages.getCommonChats
-
-* Get dialog info of peers: messages.getPeerDialogs
-
-* Get document by SHA256 hash: messages.getDocumentByHash
-
-* Get favorite stickers: messages.getFavedStickers
-
-* Get featured stickers: messages.getFeaturedStickers
-
-* Get high scores of a game sent in an inline message: messages.getInlineGameHighScores
-
-* Get high scores of a game: messages.getGameHighScores
-
-* Get info about a certain channel/supergroup participant: channels.getParticipant
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about multiple channels/supergroups: channels.getChannels
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get invitation text: help.getInviteText
-
-* Get language pack strings: langpack.getStrings
-
-* Get language pack updates: langpack.getDifference
-
-* Get language pack: langpack.getLangPack
-
-* Get masks: messages.getMaskStickers
-
-* Get messages: messages.getMessages
-
-* Get most used chats: contacts.getTopPeers
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get payment form: payments.getPaymentForm
-
-* Get payment receipt: payments.getPaymentReceipt
-
-* Get pinned dialogs: messages.getPinnedDialogs
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get recent locations: messages.getRecentLocations
-
-* Get recent stickers: messages.getRecentStickers
-
-* Get recent t.me URLs: help.getRecentMeUrls
-
-* Get saved gifs: messages.getSavedGifs
-
-* Get saved payments info: payments.getSavedInfo
-
-* Get server configuration: help.getConfig
-
-* Get stickers attachable to images: messages.getAttachedStickers
-
-* Get temporary password for buying products through bots: account.getTmpPassword
-
-* Get terms of service: help.getTermsOfService
-
-* Get the callback answer of a bot (after clicking a button): messages.getBotCallbackAnswer
-
-* Get the changelog of this app: help.getAppChangelog
-
-* Get the current password: account.getPassword
-
-* Get the link of a message in a channel: channels.exportMessageLink
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Get the settings of apeer: messages.getPeerSettings
-
-* Get unread mentions: messages.getUnreadMentions
-
-* Get webpage preview: messages.getWebPage
-
-* Get webpage preview: messages.getWebPagePreview
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Global message search: messages.searchGlobal
-
-* Hide report spam popup: messages.hideReportSpam
-
-* Import card as contact: contacts.importCard
-
-* Import chat invite: messages.importChatInvite
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Invalidate sent phone code: auth.cancelCode
-
-* Invite friends to telegram!: auth.sendInvites
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invoke with method without returning updates in the socket: invokeWithoutUpdates
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Join a channel/supergroup: channels.joinChannel
-
-* Kick or ban a user from a channel/supergroup: channels.editBanned
-
-* Leave a channel/supergroup: channels.leaveChannel
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark channel/supergroup history as read: channels.readHistory
-
-* Mark channel/supergroup messages as read: channels.readMessageContents
-
-* Mark mentions as read: messages.readMentions
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Mark new featured stickers as read: messages.readFeaturedStickers
-
-* Notify server that you received a call (server will refuse all incoming calls until the current call is over): phone.receivedCall
-
-* Pin or unpin dialog: messages.toggleDialogPin
-
-* Register device for push notifications: account.registerDevice
-
-* Remove a sticker set: messages.uninstallStickerSet
-
-* Remove sticker from stickerset: stickers.removeStickerFromSet
-
-* Reorder pinned dialogs: messages.reorderPinnedDialogs
-
-* Reorder sticker sets: messages.reorderStickerSets
-
-* Report a message in a supergroup/channel for spam: channels.reportSpam
-
-* Report a peer for spam: messages.reportSpam
-
-* Report for spam a secret chat: messages.reportEncryptedSpam
-
-* Report for spam: account.reportPeer
-
-* Resend the SMS verification code: auth.resendCode
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Reset saved contacts: contacts.resetSaved
-
-* Reset top peer rating for a certain category/peer: contacts.resetTopPeerRating
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Save a GIF: messages.saveGif
-
-* Save a message draft: messages.saveDraft
-
-* Save call debugging info: phone.saveCallDebug
-
-* Search contacts: contacts.search
-
-* Search gifs: messages.searchGifs
-
-* Search peers or messages: messages.search
-
-* Send a custom request to the bot API: bots.sendCustomRequest
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send an album: messages.sendMultiMedia
-
-* Send an email to recover the 2FA password: auth.requestPasswordRecovery
-
-* Send confirmation phone code: account.sendConfirmPhoneCode
-
-* Send inline bot result obtained with messages.getInlineBotResults to the chat: messages.sendInlineBotResult
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send screenshot notification: messages.sendScreenshotNotification
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Send webhook request via bot API: bots.answerWebhookJSONQuery
-
-* Set account TTL: account.setAccountTTL
-
-* Set phone call rating: phone.setCallRating
-
-* Set privacy settings: account.setPrivacy
-
-* Set the game score of an inline message: messages.setInlineGameScore
-
-* Set the game score: messages.setGameScore
-
-* Set the pinned message of a channel/supergroup: channels.updatePinnedMessage
-
-* Set the supergroup/channel stickerpack: channels.setStickers
-
-* Set the update status of webhook: help.setBotUpdatesStatus
-
-* Start a bot: messages.startBot
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Toggle channel signatures: channels.toggleSignatures
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update profile info: account.updateProfile
-
-* Update the username of a supergroup/channel: channels.updateUsername
-
-* Update this user's username: account.updateUsername
-
-* Upload a file without sending it to anyone: messages.uploadMedia
-
-* Upload a secret chat file without sending it to anyone: messages.uploadEncryptedFile
-
-* Upload profile photo: photos.uploadProfilePhoto
-
-* Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
-
-* Validate requested payment info: payments.validateRequestedInfo
-
diff --git a/old_docs/API_docs_v73/methods/account_changePhone.md b/old_docs/API_docs_v73/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/old_docs/API_docs_v73/methods/account_changePhone.md
+++ b/old_docs/API_docs_v73/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v73/methods/account_checkUsername.md b/old_docs/API_docs_v73/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v73/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v73/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v73/methods/account_confirmPhone.md b/old_docs/API_docs_v73/methods/account_confirmPhone.md
index b730c2dc..c114cd20 100644
--- a/old_docs/API_docs_v73/methods/account_confirmPhone.md
+++ b/old_docs/API_docs_v73/methods/account_confirmPhone.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = account.confirmPhone({phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_HASH_INVALID|Code hash invalid|
-|PHONE_CODE_EMPTY|phone_code is missing|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_HASH_INVALID|Code hash invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
diff --git a/old_docs/API_docs_v73/methods/account_getNotifySettings.md b/old_docs/API_docs_v73/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v73/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v73/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v73/methods/account_getPasswordSettings.md b/old_docs/API_docs_v73/methods/account_getPasswordSettings.md
index 8ebb78ee..8f878365 100644
--- a/old_docs/API_docs_v73/methods/account_getPasswordSettings.md
+++ b/old_docs/API_docs_v73/methods/account_getPasswordSettings.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+Get the current 2FA settings
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+### Return type: [account\_PasswordSettings](../types/account_PasswordSettings.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$account_PasswordSettings = $MadelineProto->account->getPasswordSettings(['current_password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+account_PasswordSettings = account.getPasswordSettings({current_password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v73/methods/account_getPrivacy.md b/old_docs/API_docs_v73/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/old_docs/API_docs_v73/methods/account_getPrivacy.md
+++ b/old_docs/API_docs_v73/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v73/methods/account_getTmpPassword.md b/old_docs/API_docs_v73/methods/account_getTmpPassword.md
index fd8314ee..a74d0f5a 100644
--- a/old_docs/API_docs_v73/methods/account_getTmpPassword.md
+++ b/old_docs/API_docs_v73/methods/account_getTmpPassword.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
account_TmpPassword = account.getTmpPassword({password_hash='bytes', period=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_HASH_INVALID|The provided password hash is invalid|
-|TMP_PASSWORD_DISABLED|The temporary password is disabled|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
+|400|TMP_PASSWORD_DISABLED|The temporary password is disabled|
diff --git a/old_docs/API_docs_v73/methods/account_registerDevice.md b/old_docs/API_docs_v73/methods/account_registerDevice.md
index cf16c2a2..82a6cad9 100644
--- a/old_docs/API_docs_v73/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v73/methods/account_registerDevice.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({token_type=int, token='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v73/methods/account_reportPeer.md b/old_docs/API_docs_v73/methods/account_reportPeer.md
index a203c900..87b080eb 100644
--- a/old_docs/API_docs_v73/methods/account_reportPeer.md
+++ b/old_docs/API_docs_v73/methods/account_reportPeer.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.reportPeer({peer=InputPeer, reason=ReportReason, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v73/methods/account_resetAuthorization.md b/old_docs/API_docs_v73/methods/account_resetAuthorization.md
index c950992c..e8e8ecc4 100644
--- a/old_docs/API_docs_v73/methods/account_resetAuthorization.md
+++ b/old_docs/API_docs_v73/methods/account_resetAuthorization.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.resetAuthorization({hash=long, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v73/methods/account_sendChangePhoneCode.md b/old_docs/API_docs_v73/methods/account_sendChangePhoneCode.md
index d5be60ef..08e5e86e 100644
--- a/old_docs/API_docs_v73/methods/account_sendChangePhoneCode.md
+++ b/old_docs/API_docs_v73/methods/account_sendChangePhoneCode.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendChangePhoneCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v73/methods/account_sendConfirmPhoneCode.md b/old_docs/API_docs_v73/methods/account_sendConfirmPhoneCode.md
index 028a1fdc..9fa7b57e 100644
--- a/old_docs/API_docs_v73/methods/account_sendConfirmPhoneCode.md
+++ b/old_docs/API_docs_v73/methods/account_sendConfirmPhoneCode.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendConfirmPhoneCode({allow_flashcall=Bool, hash='string', current_number=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v73/methods/account_setAccountTTL.md b/old_docs/API_docs_v73/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/old_docs/API_docs_v73/methods/account_setAccountTTL.md
+++ b/old_docs/API_docs_v73/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/old_docs/API_docs_v73/methods/account_setPrivacy.md b/old_docs/API_docs_v73/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/old_docs/API_docs_v73/methods/account_setPrivacy.md
+++ b/old_docs/API_docs_v73/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v73/methods/account_unregisterDevice.md b/old_docs/API_docs_v73/methods/account_unregisterDevice.md
index 589f48b0..a184da43 100644
--- a/old_docs/API_docs_v73/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v73/methods/account_unregisterDevice.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v73/methods/account_updateNotifySettings.md b/old_docs/API_docs_v73/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v73/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v73/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v73/methods/account_updatePasswordSettings.md b/old_docs/API_docs_v73/methods/account_updatePasswordSettings.md
index 80f27228..68e5da6d 100644
--- a/old_docs/API_docs_v73/methods/account_updatePasswordSettings.md
+++ b/old_docs/API_docs_v73/methods/account_updatePasswordSettings.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+|new\_settings|[account\_PasswordInputSettings](../types/account_PasswordInputSettings.md) | New 2FA settings | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->account->updatePasswordSettings(['current_password_hash' => 'bytes', 'new_settings' => account_PasswordInputSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = account.updatePasswordSettings({current_password_hash='bytes', new_settings=account_PasswordInputSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EMAIL_UNCONFIRMED|Email unconfirmed|
+|400|EMAIL_UNCONFIRMED_X|The provided email isn't confirmed, X is the length of the verification code that was just sent to the email.|
+|400|NEW_SALT_INVALID|The new salt is invalid|
+|400|NEW_SETTINGS_INVALID|The new settings are invalid|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v73/methods/account_updateProfile.md b/old_docs/API_docs_v73/methods/account_updateProfile.md
index af5b6a0f..0d74c5e5 100644
--- a/old_docs/API_docs_v73/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v73/methods/account_updateProfile.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v73/methods/account_updateStatus.md b/old_docs/API_docs_v73/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v73/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v73/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v73/methods/account_updateUsername.md b/old_docs/API_docs_v73/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v73/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v73/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v73/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v73/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v73/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v73/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v73/methods/auth_cancelCode.md b/old_docs/API_docs_v73/methods/auth_cancelCode.md
index fcbd7713..a69e0118 100644
--- a/old_docs/API_docs_v73/methods/auth_cancelCode.md
+++ b/old_docs/API_docs_v73/methods/auth_cancelCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = auth.cancelCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v73/methods/auth_checkPassword.md b/old_docs/API_docs_v73/methods/auth_checkPassword.md
index 8d76c483..db65cb56 100644
--- a/old_docs/API_docs_v73/methods/auth_checkPassword.md
+++ b/old_docs/API_docs_v73/methods/auth_checkPassword.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->checkPassword(['password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.checkPassword({password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v73/methods/auth_checkPhone.md b/old_docs/API_docs_v73/methods/auth_checkPhone.md
index f3e32365..e974ce7f 100644
--- a/old_docs/API_docs_v73/methods/auth_checkPhone.md
+++ b/old_docs/API_docs_v73/methods/auth_checkPhone.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
auth_CheckedPhone = auth.checkPhone({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v73/methods/auth_exportAuthorization.md b/old_docs/API_docs_v73/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v73/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v73/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v73/methods/auth_importAuthorization.md b/old_docs/API_docs_v73/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v73/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v73/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v73/methods/auth_importBotAuthorization.md b/old_docs/API_docs_v73/methods/auth_importBotAuthorization.md
index 1a98c1b9..98a2f8ca 100644
--- a/old_docs/API_docs_v73/methods/auth_importBotAuthorization.md
+++ b/old_docs/API_docs_v73/methods/auth_importBotAuthorization.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|api\_id|[int](../types/int.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_hash|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|bot\_auth\_token|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importBotAuthorization(['api_id' => int, 'api_hash' => 'string', 'bot_auth_token' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importBotAuthorization({api_id=int, api_hash='string', bot_auth_token='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ACCESS_TOKEN_EXPIRED|Access token expired|
+|400|ACCESS_TOKEN_INVALID|Access token invalid|
+|400|API_ID_INVALID|API ID invalid|
diff --git a/old_docs/API_docs_v73/methods/auth_logOut.md b/old_docs/API_docs_v73/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v73/methods/auth_logOut.md
+++ b/old_docs/API_docs_v73/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v73/methods/auth_recoverPassword.md b/old_docs/API_docs_v73/methods/auth_recoverPassword.md
index 83ff5aed..d4bad9c5 100644
--- a/old_docs/API_docs_v73/methods/auth_recoverPassword.md
+++ b/old_docs/API_docs_v73/methods/auth_recoverPassword.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
auth_Authorization = auth.recoverPassword({code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_EMPTY|The provided code is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_EMPTY|The provided code is empty|
diff --git a/old_docs/API_docs_v73/methods/auth_requestPasswordRecovery.md b/old_docs/API_docs_v73/methods/auth_requestPasswordRecovery.md
index 1864bbb0..b6ad57ba 100644
--- a/old_docs/API_docs_v73/methods/auth_requestPasswordRecovery.md
+++ b/old_docs/API_docs_v73/methods/auth_requestPasswordRecovery.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
auth_PasswordRecovery = auth.requestPasswordRecovery({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_EMPTY|The provided password is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_EMPTY|The provided password is empty|
diff --git a/old_docs/API_docs_v73/methods/auth_resendCode.md b/old_docs/API_docs_v73/methods/auth_resendCode.md
index ff7868ea..ec730d75 100644
--- a/old_docs/API_docs_v73/methods/auth_resendCode.md
+++ b/old_docs/API_docs_v73/methods/auth_resendCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = auth.resendCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v73/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v73/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v73/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v73/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v73/methods/auth_sendCode.md b/old_docs/API_docs_v73/methods/auth_sendCode.md
index 9afebb55..1e9d1a4e 100644
--- a/old_docs/API_docs_v73/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v73/methods/auth_sendCode.md
@@ -7,8 +7,59 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|allow\_flashcall|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|current\_number|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['allow_flashcall' => Bool, 'phone_number' => 'string', 'current_number' => Bool, 'api_id' => int, 'api_hash' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, api_id=int, api_hash='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v73/methods/auth_sendInvites.md b/old_docs/API_docs_v73/methods/auth_sendInvites.md
index e10c1109..4c11023e 100644
--- a/old_docs/API_docs_v73/methods/auth_sendInvites.md
+++ b/old_docs/API_docs_v73/methods/auth_sendInvites.md
@@ -49,10 +49,10 @@ Bool = auth.sendInvites({phone_numbers={'string'}, message='string', })
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_EMPTY|The provided message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_EMPTY|The provided message is empty|
diff --git a/old_docs/API_docs_v73/methods/auth_signIn.md b/old_docs/API_docs_v73/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v73/methods/auth_signIn.md
+++ b/old_docs/API_docs_v73/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v73/methods/auth_signUp.md b/old_docs/API_docs_v73/methods/auth_signUp.md
index 15960145..31154486 100644
--- a/old_docs/API_docs_v73/methods/auth_signUp.md
+++ b/old_docs/API_docs_v73/methods/auth_signUp.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', phone_code='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v73/methods/bots_answerWebhookJSONQuery.md b/old_docs/API_docs_v73/methods/bots_answerWebhookJSONQuery.md
index ae0fa6d9..f2233514 100644
--- a/old_docs/API_docs_v73/methods/bots_answerWebhookJSONQuery.md
+++ b/old_docs/API_docs_v73/methods/bots_answerWebhookJSONQuery.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = bots.answerWebhookJSONQuery({query_id=long, data=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v73/methods/bots_sendCustomRequest.md b/old_docs/API_docs_v73/methods/bots_sendCustomRequest.md
index c1fd8183..8a6a2df5 100644
--- a/old_docs/API_docs_v73/methods/bots_sendCustomRequest.md
+++ b/old_docs/API_docs_v73/methods/bots_sendCustomRequest.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
DataJSON = bots.sendCustomRequest({custom_method='string', params=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v73/methods/channels_checkUsername.md b/old_docs/API_docs_v73/methods/channels_checkUsername.md
index 483a2f6f..52365d34 100644
--- a/old_docs/API_docs_v73/methods/channels_checkUsername.md
+++ b/old_docs/API_docs_v73/methods/channels_checkUsername.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Bool = channels.checkUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v73/methods/channels_createChannel.md b/old_docs/API_docs_v73/methods/channels_createChannel.md
index b924e6a6..ecaee0ef 100644
--- a/old_docs/API_docs_v73/methods/channels_createChannel.md
+++ b/old_docs/API_docs_v73/methods/channels_createChannel.md
@@ -45,12 +45,12 @@ Or, if you're into Lua:
Updates = channels.createChannel({broadcast=Bool, megagroup=Bool, title='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_TITLE_EMPTY|No chat title provided|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
+|406|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v73/methods/channels_deleteChannel.md b/old_docs/API_docs_v73/methods/channels_deleteChannel.md
index 53a9c23d..1b8d2d48 100644
--- a/old_docs/API_docs_v73/methods/channels_deleteChannel.md
+++ b/old_docs/API_docs_v73/methods/channels_deleteChannel.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Updates = channels.deleteChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v73/methods/channels_deleteMessages.md b/old_docs/API_docs_v73/methods/channels_deleteMessages.md
index f76a9ad1..463ebad0 100644
--- a/old_docs/API_docs_v73/methods/channels_deleteMessages.md
+++ b/old_docs/API_docs_v73/methods/channels_deleteMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_AffectedMessages = channels.deleteMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v73/methods/channels_deleteUserHistory.md b/old_docs/API_docs_v73/methods/channels_deleteUserHistory.md
index 0a4e7d82..33905a7e 100644
--- a/old_docs/API_docs_v73/methods/channels_deleteUserHistory.md
+++ b/old_docs/API_docs_v73/methods/channels_deleteUserHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedHistory = channels.deleteUserHistory({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v73/methods/channels_editAbout.md b/old_docs/API_docs_v73/methods/channels_editAbout.md
index 47111668..d5e090e0 100644
--- a/old_docs/API_docs_v73/methods/channels_editAbout.md
+++ b/old_docs/API_docs_v73/methods/channels_editAbout.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Bool = channels.editAbout({channel=InputChannel, about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
-|CHAT_ABOUT_TOO_LONG|Chat about too long|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
+|400|CHAT_ABOUT_TOO_LONG|Chat about too long|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v73/methods/channels_editAdmin.md b/old_docs/API_docs_v73/methods/channels_editAdmin.md
index 43858599..edb7cf55 100644
--- a/old_docs/API_docs_v73/methods/channels_editAdmin.md
+++ b/old_docs/API_docs_v73/methods/channels_editAdmin.md
@@ -44,19 +44,19 @@ Or, if you're into Lua:
Updates = channels.editAdmin({channel=InputChannel, user_id=InputUser, admin_rights=ChannelAdminRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ADMINS_TOO_MUCH|There are too many admins|
-|BOT_CHANNELS_NA|Bots can't edit admin privileges|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
-|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ADMINS_TOO_MUCH|There are too many admins|
+|400|BOT_CHANNELS_NA|Bots can't edit admin privileges|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
+|403|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v73/methods/channels_editBanned.md b/old_docs/API_docs_v73/methods/channels_editBanned.md
index cffb653e..1fd5f597 100644
--- a/old_docs/API_docs_v73/methods/channels_editBanned.md
+++ b/old_docs/API_docs_v73/methods/channels_editBanned.md
@@ -44,14 +44,14 @@ Or, if you're into Lua:
Updates = channels.editBanned({channel=InputChannel, user_id=InputUser, banned_rights=ChannelBannedRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ADMIN_INVALID|You're not an admin|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ADMIN_INVALID|You're not an admin|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v73/methods/channels_editPhoto.md b/old_docs/API_docs_v73/methods/channels_editPhoto.md
index bec0ba48..caef32d5 100644
--- a/old_docs/API_docs_v73/methods/channels_editPhoto.md
+++ b/old_docs/API_docs_v73/methods/channels_editPhoto.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editPhoto({channel=InputChannel, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|PHOTO_INVALID|Photo invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|PHOTO_INVALID|Photo invalid|
diff --git a/old_docs/API_docs_v73/methods/channels_editTitle.md b/old_docs/API_docs_v73/methods/channels_editTitle.md
index b5efeb39..d7cb33da 100644
--- a/old_docs/API_docs_v73/methods/channels_editTitle.md
+++ b/old_docs/API_docs_v73/methods/channels_editTitle.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editTitle({channel=InputChannel, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v73/methods/channels_exportInvite.md b/old_docs/API_docs_v73/methods/channels_exportInvite.md
index 0918b3e7..9d578deb 100644
--- a/old_docs/API_docs_v73/methods/channels_exportInvite.md
+++ b/old_docs/API_docs_v73/methods/channels_exportInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ExportedChatInvite = channels.exportInvite({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INVITE_HASH_EXPIRED|The invite link has expired|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
diff --git a/old_docs/API_docs_v73/methods/channels_exportMessageLink.md b/old_docs/API_docs_v73/methods/channels_exportMessageLink.md
index 66cd7584..2e92ee5e 100644
--- a/old_docs/API_docs_v73/methods/channels_exportMessageLink.md
+++ b/old_docs/API_docs_v73/methods/channels_exportMessageLink.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
ExportedMessageLink = channels.exportMessageLink({channel=InputChannel, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v73/methods/channels_getAdminLog.md b/old_docs/API_docs_v73/methods/channels_getAdminLog.md
index 377c7320..adb87748 100644
--- a/old_docs/API_docs_v73/methods/channels_getAdminLog.md
+++ b/old_docs/API_docs_v73/methods/channels_getAdminLog.md
@@ -48,12 +48,12 @@ Or, if you're into Lua:
channels_AdminLogResults = channels.getAdminLog({channel=InputChannel, q='string', events_filter=ChannelAdminLogEventsFilter, admins={InputUser}, max_id=long, min_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v73/methods/channels_getChannels.md b/old_docs/API_docs_v73/methods/channels_getChannels.md
index 78d50641..95d7a188 100644
--- a/old_docs/API_docs_v73/methods/channels_getChannels.md
+++ b/old_docs/API_docs_v73/methods/channels_getChannels.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = channels.getChannels({id={InputChannel}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v73/methods/channels_getFullChannel.md b/old_docs/API_docs_v73/methods/channels_getFullChannel.md
index 45a8ec72..ebd53de4 100644
--- a/old_docs/API_docs_v73/methods/channels_getFullChannel.md
+++ b/old_docs/API_docs_v73/methods/channels_getFullChannel.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->channels->getFullChannel(['channel' => InputChannel, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = channels.getFullChannel({channel=InputChannel, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v73/methods/channels_getMessages.md b/old_docs/API_docs_v73/methods/channels_getMessages.md
index aa85d640..57bcc60f 100644
--- a/old_docs/API_docs_v73/methods/channels_getMessages.md
+++ b/old_docs/API_docs_v73/methods/channels_getMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_Messages = channels.getMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
diff --git a/old_docs/API_docs_v73/methods/channels_getParticipant.md b/old_docs/API_docs_v73/methods/channels_getParticipant.md
index 6633114f..808156fd 100644
--- a/old_docs/API_docs_v73/methods/channels_getParticipant.md
+++ b/old_docs/API_docs_v73/methods/channels_getParticipant.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
channels_ChannelParticipant = channels.getParticipant({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v73/methods/channels_getParticipants.md b/old_docs/API_docs_v73/methods/channels_getParticipants.md
index 5ff242e6..fb7a39df 100644
--- a/old_docs/API_docs_v73/methods/channels_getParticipants.md
+++ b/old_docs/API_docs_v73/methods/channels_getParticipants.md
@@ -46,14 +46,14 @@ Or, if you're into Lua:
channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, filter=ChannelParticipantsFilter, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v73/methods/channels_inviteToChannel.md b/old_docs/API_docs_v73/methods/channels_inviteToChannel.md
index f7093f13..d8c5e88a 100644
--- a/old_docs/API_docs_v73/methods/channels_inviteToChannel.md
+++ b/old_docs/API_docs_v73/methods/channels_inviteToChannel.md
@@ -43,25 +43,25 @@ Or, if you're into Lua:
Updates = channels.inviteToChannel({channel=InputChannel, users={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
-|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_BLOCKED|User blocked|
-|USER_BOT|Bots can only be admins in channels.|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_KICKED|This user was kicked from this supergroup/channel|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
+|400|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_BLOCKED|User blocked|
+|400|USER_BOT|Bots can only be admins in channels.|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_KICKED|This user was kicked from this supergroup/channel|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v73/methods/channels_joinChannel.md b/old_docs/API_docs_v73/methods/channels_joinChannel.md
index b056031a..a4a7c177 100644
--- a/old_docs/API_docs_v73/methods/channels_joinChannel.md
+++ b/old_docs/API_docs_v73/methods/channels_joinChannel.md
@@ -42,15 +42,15 @@ Or, if you're into Lua:
Updates = channels.joinChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
diff --git a/old_docs/API_docs_v73/methods/channels_leaveChannel.md b/old_docs/API_docs_v73/methods/channels_leaveChannel.md
index fdea13ba..6538d443 100644
--- a/old_docs/API_docs_v73/methods/channels_leaveChannel.md
+++ b/old_docs/API_docs_v73/methods/channels_leaveChannel.md
@@ -42,14 +42,14 @@ Or, if you're into Lua:
Updates = channels.leaveChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
-|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
diff --git a/old_docs/API_docs_v73/methods/channels_readHistory.md b/old_docs/API_docs_v73/methods/channels_readHistory.md
index 93dc075f..3532dae0 100644
--- a/old_docs/API_docs_v73/methods/channels_readHistory.md
+++ b/old_docs/API_docs_v73/methods/channels_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readHistory({channel=InputChannel, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v73/methods/channels_readMessageContents.md b/old_docs/API_docs_v73/methods/channels_readMessageContents.md
index 80ddf2b0..8cd8c620 100644
--- a/old_docs/API_docs_v73/methods/channels_readMessageContents.md
+++ b/old_docs/API_docs_v73/methods/channels_readMessageContents.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readMessageContents({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v73/methods/channels_reportSpam.md b/old_docs/API_docs_v73/methods/channels_reportSpam.md
index db80676a..7e273cc5 100644
--- a/old_docs/API_docs_v73/methods/channels_reportSpam.md
+++ b/old_docs/API_docs_v73/methods/channels_reportSpam.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
Bool = channels.reportSpam({channel=InputChannel, user_id=InputUser, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
diff --git a/old_docs/API_docs_v73/methods/channels_setStickers.md b/old_docs/API_docs_v73/methods/channels_setStickers.md
index 10cd68bf..c9b95527 100644
--- a/old_docs/API_docs_v73/methods/channels_setStickers.md
+++ b/old_docs/API_docs_v73/methods/channels_setStickers.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.setStickers({channel=InputChannel, stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PARTICIPANTS_TOO_FEW|Not enough participants|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PARTICIPANTS_TOO_FEW|Not enough participants|
diff --git a/old_docs/API_docs_v73/methods/channels_toggleInvites.md b/old_docs/API_docs_v73/methods/channels_toggleInvites.md
index e5d3fba1..6266d30b 100644
--- a/old_docs/API_docs_v73/methods/channels_toggleInvites.md
+++ b/old_docs/API_docs_v73/methods/channels_toggleInvites.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.toggleInvites({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v73/methods/channels_toggleSignatures.md b/old_docs/API_docs_v73/methods/channels_toggleSignatures.md
index cdfc0fda..f8624946 100644
--- a/old_docs/API_docs_v73/methods/channels_toggleSignatures.md
+++ b/old_docs/API_docs_v73/methods/channels_toggleSignatures.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = channels.toggleSignatures({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v73/methods/channels_updatePinnedMessage.md b/old_docs/API_docs_v73/methods/channels_updatePinnedMessage.md
index 53733a22..37d7c3c0 100644
--- a/old_docs/API_docs_v73/methods/channels_updatePinnedMessage.md
+++ b/old_docs/API_docs_v73/methods/channels_updatePinnedMessage.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = channels.updatePinnedMessage({silent=Bool, channel=InputChannel, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v73/methods/channels_updateUsername.md b/old_docs/API_docs_v73/methods/channels_updateUsername.md
index 677712f9..48d250e6 100644
--- a/old_docs/API_docs_v73/methods/channels_updateUsername.md
+++ b/old_docs/API_docs_v73/methods/channels_updateUsername.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Bool = channels.updateUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_OCCUPIED|The provided username is already occupied|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
diff --git a/old_docs/API_docs_v73/methods/contacts_block.md b/old_docs/API_docs_v73/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v73/methods/contacts_block.md
+++ b/old_docs/API_docs_v73/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v73/methods/contacts_deleteContact.md b/old_docs/API_docs_v73/methods/contacts_deleteContact.md
index ba9569e4..a9321d64 100644
--- a/old_docs/API_docs_v73/methods/contacts_deleteContact.md
+++ b/old_docs/API_docs_v73/methods/contacts_deleteContact.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
contacts_Link = contacts.deleteContact({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v73/methods/contacts_deleteContacts.md b/old_docs/API_docs_v73/methods/contacts_deleteContacts.md
index bfc91fdd..3c8e90f0 100644
--- a/old_docs/API_docs_v73/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v73/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v73/methods/contacts_getStatuses.md b/old_docs/API_docs_v73/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v73/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v73/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v73/methods/contacts_getTopPeers.md b/old_docs/API_docs_v73/methods/contacts_getTopPeers.md
index 4dc13d08..9ad9ab01 100644
--- a/old_docs/API_docs_v73/methods/contacts_getTopPeers.md
+++ b/old_docs/API_docs_v73/methods/contacts_getTopPeers.md
@@ -50,10 +50,10 @@ Or, if you're into Lua:
contacts_TopPeers = contacts.getTopPeers({correspondents=Bool, bots_pm=Bool, bots_inline=Bool, phone_calls=Bool, groups=Bool, channels=Bool, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TYPES_EMPTY|No top peer type was provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TYPES_EMPTY|No top peer type was provided|
diff --git a/old_docs/API_docs_v73/methods/contacts_importCard.md b/old_docs/API_docs_v73/methods/contacts_importCard.md
index 15addde1..ed3d17fe 100644
--- a/old_docs/API_docs_v73/methods/contacts_importCard.md
+++ b/old_docs/API_docs_v73/methods/contacts_importCard.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
User = contacts.importCard({export_card={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|EXPORT_CARD_INVALID|Provided card is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EXPORT_CARD_INVALID|Provided card is invalid|
diff --git a/old_docs/API_docs_v73/methods/contacts_resetTopPeerRating.md b/old_docs/API_docs_v73/methods/contacts_resetTopPeerRating.md
index 43cf1685..787be177 100644
--- a/old_docs/API_docs_v73/methods/contacts_resetTopPeerRating.md
+++ b/old_docs/API_docs_v73/methods/contacts_resetTopPeerRating.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = contacts.resetTopPeerRating({category=TopPeerCategory, peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v73/methods/contacts_resolveUsername.md b/old_docs/API_docs_v73/methods/contacts_resolveUsername.md
index fab56bb1..68f709db 100644
--- a/old_docs/API_docs_v73/methods/contacts_resolveUsername.md
+++ b/old_docs/API_docs_v73/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [contacts\_ResolvedPeer](../types/contacts_ResolvedPeer.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$contacts_ResolvedPeer = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+contacts_ResolvedPeer = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v73/methods/contacts_search.md b/old_docs/API_docs_v73/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v73/methods/contacts_search.md
+++ b/old_docs/API_docs_v73/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v73/methods/contacts_unblock.md b/old_docs/API_docs_v73/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v73/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v73/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v73/methods/help_getCdnConfig.md b/old_docs/API_docs_v73/methods/help_getCdnConfig.md
index 9e047a1d..ba526365 100644
--- a/old_docs/API_docs_v73/methods/help_getCdnConfig.md
+++ b/old_docs/API_docs_v73/methods/help_getCdnConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
CdnConfig = help.getCdnConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v73/methods/help_getConfig.md b/old_docs/API_docs_v73/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v73/methods/help_getConfig.md
+++ b/old_docs/API_docs_v73/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v73/methods/initConnection.md b/old_docs/API_docs_v73/methods/initConnection.md
index 05ba27af..49e2b675 100644
--- a/old_docs/API_docs_v73/methods/initConnection.md
+++ b/old_docs/API_docs_v73/methods/initConnection.md
@@ -49,11 +49,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', system_lang_code='string', lang_pack='string', lang_code='string', query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v73/methods/invokeWithLayer.md b/old_docs/API_docs_v73/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/old_docs/API_docs_v73/methods/invokeWithLayer.md
+++ b/old_docs/API_docs_v73/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v73/methods/langpack_getDifference.md b/old_docs/API_docs_v73/methods/langpack_getDifference.md
index ed7e4028..70295776 100644
--- a/old_docs/API_docs_v73/methods/langpack_getDifference.md
+++ b/old_docs/API_docs_v73/methods/langpack_getDifference.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getDifference({from_version=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v73/methods/langpack_getLangPack.md b/old_docs/API_docs_v73/methods/langpack_getLangPack.md
index 50684fef..de6ab2ab 100644
--- a/old_docs/API_docs_v73/methods/langpack_getLangPack.md
+++ b/old_docs/API_docs_v73/methods/langpack_getLangPack.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getLangPack({lang_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v73/methods/langpack_getLanguages.md b/old_docs/API_docs_v73/methods/langpack_getLanguages.md
index 7ffc0f3b..0b09a845 100644
--- a/old_docs/API_docs_v73/methods/langpack_getLanguages.md
+++ b/old_docs/API_docs_v73/methods/langpack_getLanguages.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_LangPackLanguage = langpack.getLanguages({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v73/methods/langpack_getStrings.md b/old_docs/API_docs_v73/methods/langpack_getStrings.md
index 1101ec91..3276120f 100644
--- a/old_docs/API_docs_v73/methods/langpack_getStrings.md
+++ b/old_docs/API_docs_v73/methods/langpack_getStrings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Vector_of_LangPackString = langpack.getStrings({lang_code='string', keys={'string'}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_acceptEncryption.md b/old_docs/API_docs_v73/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v73/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v73/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v73/methods/messages_addChatUser.md b/old_docs/API_docs_v73/methods/messages_addChatUser.md
index bc0d6253..b5e164b2 100644
--- a/old_docs/API_docs_v73/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v73/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
Updates = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v73/methods/messages_checkChatInvite.md b/old_docs/API_docs_v73/methods/messages_checkChatInvite.md
index de28b09b..0d13d55e 100644
--- a/old_docs/API_docs_v73/methods/messages_checkChatInvite.md
+++ b/old_docs/API_docs_v73/methods/messages_checkChatInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ChatInvite = messages.checkChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_createChat.md b/old_docs/API_docs_v73/methods/messages_createChat.md
index 8f6e9672..b2623f1d 100644
--- a/old_docs/API_docs_v73/methods/messages_createChat.md
+++ b/old_docs/API_docs_v73/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v73/methods/messages_deleteChatUser.md b/old_docs/API_docs_v73/methods/messages_deleteChatUser.md
index 63529571..11b9b220 100644
--- a/old_docs/API_docs_v73/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v73/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v73/methods/messages_deleteHistory.md b/old_docs/API_docs_v73/methods/messages_deleteHistory.md
index 2ade177e..338c2cdf 100644
--- a/old_docs/API_docs_v73/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v73/methods/messages_deleteHistory.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({just_clear=Bool, peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_deleteMessages.md b/old_docs/API_docs_v73/methods/messages_deleteMessages.md
index 4c65080a..41517dd0 100644
--- a/old_docs/API_docs_v73/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v73/methods/messages_deleteMessages.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.deleteMessages({revoke=Bool, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v73/methods/messages_discardEncryption.md b/old_docs/API_docs_v73/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v73/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v73/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_editChatAdmin.md b/old_docs/API_docs_v73/methods/messages_editChatAdmin.md
index 2b4dc94c..6f6c1376 100644
--- a/old_docs/API_docs_v73/methods/messages_editChatAdmin.md
+++ b/old_docs/API_docs_v73/methods/messages_editChatAdmin.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.editChatAdmin({chat_id=InputPeer, user_id=InputUser, is_admin=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_editChatPhoto.md b/old_docs/API_docs_v73/methods/messages_editChatPhoto.md
index 2a82c232..a21a03b9 100644
--- a/old_docs/API_docs_v73/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v73/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Updates = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_editChatTitle.md b/old_docs/API_docs_v73/methods/messages_editChatTitle.md
index 2c338ad6..72f78741 100644
--- a/old_docs/API_docs_v73/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v73/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v73/methods/messages_editInlineBotMessage.md b/old_docs/API_docs_v73/methods/messages_editInlineBotMessage.md
index b6269ae8..aebd3a65 100644
--- a/old_docs/API_docs_v73/methods/messages_editInlineBotMessage.md
+++ b/old_docs/API_docs_v73/methods/messages_editInlineBotMessage.md
@@ -97,11 +97,11 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
diff --git a/old_docs/API_docs_v73/methods/messages_editMessage.md b/old_docs/API_docs_v73/methods/messages_editMessage.md
index b286c713..a594ece1 100644
--- a/old_docs/API_docs_v73/methods/messages_editMessage.md
+++ b/old_docs/API_docs_v73/methods/messages_editMessage.md
@@ -98,20 +98,20 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v73/methods/messages_exportChatInvite.md b/old_docs/API_docs_v73/methods/messages_exportChatInvite.md
index f3449e79..bc6272e4 100644
--- a/old_docs/API_docs_v73/methods/messages_exportChatInvite.md
+++ b/old_docs/API_docs_v73/methods/messages_exportChatInvite.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
ExportedChatInvite = messages.exportChatInvite({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_faveSticker.md b/old_docs/API_docs_v73/methods/messages_faveSticker.md
index a8b1ab56..9f9f423d 100644
--- a/old_docs/API_docs_v73/methods/messages_faveSticker.md
+++ b/old_docs/API_docs_v73/methods/messages_faveSticker.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.faveSticker({id=InputDocument, unfave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_forwardMessage.md b/old_docs/API_docs_v73/methods/messages_forwardMessage.md
index c8e0b18d..95f6d2f3 100644
--- a/old_docs/API_docs_v73/methods/messages_forwardMessage.md
+++ b/old_docs/API_docs_v73/methods/messages_forwardMessage.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Updates = messages.forwardMessage({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|YOU_BLOCKED_USER|You blocked this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|YOU_BLOCKED_USER|You blocked this user|
diff --git a/old_docs/API_docs_v73/methods/messages_forwardMessages.md b/old_docs/API_docs_v73/methods/messages_forwardMessages.md
index d2453d05..743fa7a6 100644
--- a/old_docs/API_docs_v73/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v73/methods/messages_forwardMessages.md
@@ -48,29 +48,29 @@ Or, if you're into Lua:
Updates = messages.forwardMessages({silent=Bool, background=Bool, with_my_score=Bool, grouped=Bool, from_peer=InputPeer, id={int}, to_peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v73/methods/messages_getBotCallbackAnswer.md b/old_docs/API_docs_v73/methods/messages_getBotCallbackAnswer.md
index f97fa5b0..3f8cc23b 100644
--- a/old_docs/API_docs_v73/methods/messages_getBotCallbackAnswer.md
+++ b/old_docs/API_docs_v73/methods/messages_getBotCallbackAnswer.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
messages_BotCallbackAnswer = messages.getBotCallbackAnswer({game=Bool, peer=InputPeer, msg_id=int, data='bytes', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v73/methods/messages_getChats.md b/old_docs/API_docs_v73/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/old_docs/API_docs_v73/methods/messages_getChats.md
+++ b/old_docs/API_docs_v73/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_getCommonChats.md b/old_docs/API_docs_v73/methods/messages_getCommonChats.md
index 9470a0ee..cff23c3f 100644
--- a/old_docs/API_docs_v73/methods/messages_getCommonChats.md
+++ b/old_docs/API_docs_v73/methods/messages_getCommonChats.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_Chats = messages.getCommonChats({user_id=InputUser, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_getDhConfig.md b/old_docs/API_docs_v73/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v73/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v73/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_getDialogs.md b/old_docs/API_docs_v73/methods/messages_getDialogs.md
index 28590399..e95ea75b 100644
--- a/old_docs/API_docs_v73/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v73/methods/messages_getDialogs.md
@@ -46,13 +46,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({exclude_pinned=Bool, offset_date=int, offset_id=int, offset_peer=InputPeer, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v73/methods/messages_getDocumentByHash.md b/old_docs/API_docs_v73/methods/messages_getDocumentByHash.md
index 73a235d5..06469c52 100644
--- a/old_docs/API_docs_v73/methods/messages_getDocumentByHash.md
+++ b/old_docs/API_docs_v73/methods/messages_getDocumentByHash.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Document = messages.getDocumentByHash({sha256='bytes', size=int, mime_type='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_getFullChat.md b/old_docs/API_docs_v73/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v73/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v73/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_getGameHighScores.md b/old_docs/API_docs_v73/methods/messages_getGameHighScores.md
index 249e1d09..5c484bbb 100644
--- a/old_docs/API_docs_v73/methods/messages_getGameHighScores.md
+++ b/old_docs/API_docs_v73/methods/messages_getGameHighScores.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
messages_HighScores = messages.getGameHighScores({peer=InputPeer, id=int, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v73/methods/messages_getHistory.md b/old_docs/API_docs_v73/methods/messages_getHistory.md
index d623a61e..a0389d7b 100644
--- a/old_docs/API_docs_v73/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v73/methods/messages_getHistory.md
@@ -49,16 +49,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset_id=int, offset_date=int, add_offset=int, limit=int, max_id=int, min_id=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v73/methods/messages_getInlineBotResults.md b/old_docs/API_docs_v73/methods/messages_getInlineBotResults.md
index 1efcb412..17d678b7 100644
--- a/old_docs/API_docs_v73/methods/messages_getInlineBotResults.md
+++ b/old_docs/API_docs_v73/methods/messages_getInlineBotResults.md
@@ -46,13 +46,13 @@ Or, if you're into Lua:
messages_BotResults = messages.getInlineBotResults({bot=InputUser, peer=InputPeer, geo_point=InputGeoPoint, query='string', offset='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
-|BOT_INVALID|This is not a valid bot|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
+|400|BOT_INVALID|This is not a valid bot|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v73/methods/messages_getInlineGameHighScores.md b/old_docs/API_docs_v73/methods/messages_getInlineGameHighScores.md
index e68c6db8..ac33b6b8 100644
--- a/old_docs/API_docs_v73/methods/messages_getInlineGameHighScores.md
+++ b/old_docs/API_docs_v73/methods/messages_getInlineGameHighScores.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_HighScores = messages.getInlineGameHighScores({id=InputBotInlineMessageID, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v73/methods/messages_getMessageEditData.md b/old_docs/API_docs_v73/methods/messages_getMessageEditData.md
index 7f1b7164..b907d78c 100644
--- a/old_docs/API_docs_v73/methods/messages_getMessageEditData.md
+++ b/old_docs/API_docs_v73/methods/messages_getMessageEditData.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_MessageEditData = messages.getMessageEditData({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v73/methods/messages_getMessagesViews.md b/old_docs/API_docs_v73/methods/messages_getMessagesViews.md
index 3d490315..143e568c 100644
--- a/old_docs/API_docs_v73/methods/messages_getMessagesViews.md
+++ b/old_docs/API_docs_v73/methods/messages_getMessagesViews.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
Vector_of_int = messages.getMessagesViews({peer=InputPeer, id={int}, increment=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_getPeerDialogs.md b/old_docs/API_docs_v73/methods/messages_getPeerDialogs.md
index 6811001a..0c770183 100644
--- a/old_docs/API_docs_v73/methods/messages_getPeerDialogs.md
+++ b/old_docs/API_docs_v73/methods/messages_getPeerDialogs.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPeerDialogs({peers={InputPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_getPeerSettings.md b/old_docs/API_docs_v73/methods/messages_getPeerSettings.md
index 26dafb9b..69032ff5 100644
--- a/old_docs/API_docs_v73/methods/messages_getPeerSettings.md
+++ b/old_docs/API_docs_v73/methods/messages_getPeerSettings.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
PeerSettings = messages.getPeerSettings({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_getPinnedDialogs.md b/old_docs/API_docs_v73/methods/messages_getPinnedDialogs.md
index 828d622e..f106098d 100644
--- a/old_docs/API_docs_v73/methods/messages_getPinnedDialogs.md
+++ b/old_docs/API_docs_v73/methods/messages_getPinnedDialogs.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPinnedDialogs({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FOLDER_ID_INVALID|Invalid folder ID|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FOLDER_ID_INVALID|Invalid folder ID|
diff --git a/old_docs/API_docs_v73/methods/messages_getStickerSet.md b/old_docs/API_docs_v73/methods/messages_getStickerSet.md
index 57bce84d..487316cc 100644
--- a/old_docs/API_docs_v73/methods/messages_getStickerSet.md
+++ b/old_docs/API_docs_v73/methods/messages_getStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_StickerSet = messages.getStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_getUnreadMentions.md b/old_docs/API_docs_v73/methods/messages_getUnreadMentions.md
index 1fa1f269..923229eb 100644
--- a/old_docs/API_docs_v73/methods/messages_getUnreadMentions.md
+++ b/old_docs/API_docs_v73/methods/messages_getUnreadMentions.md
@@ -47,10 +47,10 @@ Or, if you're into Lua:
messages_Messages = messages.getUnreadMentions({peer=InputPeer, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_getWebPage.md b/old_docs/API_docs_v73/methods/messages_getWebPage.md
index ce51ff41..63ef5e93 100644
--- a/old_docs/API_docs_v73/methods/messages_getWebPage.md
+++ b/old_docs/API_docs_v73/methods/messages_getWebPage.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
WebPage = messages.getWebPage({url='string', hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|WC_CONVERT_URL_INVALID|WC convert URL invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|WC_CONVERT_URL_INVALID|WC convert URL invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_hideReportSpam.md b/old_docs/API_docs_v73/methods/messages_hideReportSpam.md
index c4bf7399..57756d2e 100644
--- a/old_docs/API_docs_v73/methods/messages_hideReportSpam.md
+++ b/old_docs/API_docs_v73/methods/messages_hideReportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.hideReportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_importChatInvite.md b/old_docs/API_docs_v73/methods/messages_importChatInvite.md
index 12120867..101b4b19 100644
--- a/old_docs/API_docs_v73/methods/messages_importChatInvite.md
+++ b/old_docs/API_docs_v73/methods/messages_importChatInvite.md
@@ -42,16 +42,16 @@ Or, if you're into Lua:
Updates = messages.importChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v73/methods/messages_installStickerSet.md b/old_docs/API_docs_v73/methods/messages_installStickerSet.md
index 21a57a85..67f2aca0 100644
--- a/old_docs/API_docs_v73/methods/messages_installStickerSet.md
+++ b/old_docs/API_docs_v73/methods/messages_installStickerSet.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_StickerSetInstallResult = messages.installStickerSet({stickerset=InputStickerSet, archived=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_migrateChat.md b/old_docs/API_docs_v73/methods/messages_migrateChat.md
index a72f4c11..ee4010eb 100644
--- a/old_docs/API_docs_v73/methods/messages_migrateChat.md
+++ b/old_docs/API_docs_v73/methods/messages_migrateChat.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
Updates = messages.migrateChat({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v73/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v73/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v73/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v73/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v73/methods/messages_readHistory.md b/old_docs/API_docs_v73/methods/messages_readHistory.md
index 2ad5cd09..a7f0eca7 100644
--- a/old_docs/API_docs_v73/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v73/methods/messages_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.readHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v73/methods/messages_receivedQueue.md b/old_docs/API_docs_v73/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v73/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v73/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v73/methods/messages_reorderPinnedDialogs.md b/old_docs/API_docs_v73/methods/messages_reorderPinnedDialogs.md
index d6759a55..d89bf27a 100644
--- a/old_docs/API_docs_v73/methods/messages_reorderPinnedDialogs.md
+++ b/old_docs/API_docs_v73/methods/messages_reorderPinnedDialogs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.reorderPinnedDialogs({force=Bool, order={InputPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_reportEncryptedSpam.md b/old_docs/API_docs_v73/methods/messages_reportEncryptedSpam.md
index 9b1e868b..aeac27ef 100644
--- a/old_docs/API_docs_v73/methods/messages_reportEncryptedSpam.md
+++ b/old_docs/API_docs_v73/methods/messages_reportEncryptedSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportEncryptedSpam({peer=InputEncryptedChat, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_reportSpam.md b/old_docs/API_docs_v73/methods/messages_reportSpam.md
index e92fba13..dc256e55 100644
--- a/old_docs/API_docs_v73/methods/messages_reportSpam.md
+++ b/old_docs/API_docs_v73/methods/messages_reportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_requestEncryption.md b/old_docs/API_docs_v73/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v73/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v73/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_saveDraft.md b/old_docs/API_docs_v73/methods/messages_saveDraft.md
index 791ce234..ea6d407e 100644
--- a/old_docs/API_docs_v73/methods/messages_saveDraft.md
+++ b/old_docs/API_docs_v73/methods/messages_saveDraft.md
@@ -89,10 +89,10 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_saveGif.md b/old_docs/API_docs_v73/methods/messages_saveGif.md
index f504ff9e..010e17ec 100644
--- a/old_docs/API_docs_v73/methods/messages_saveGif.md
+++ b/old_docs/API_docs_v73/methods/messages_saveGif.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.saveGif({id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|GIF_ID_INVALID|The provided GIF ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|GIF_ID_INVALID|The provided GIF ID is invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_saveRecentSticker.md b/old_docs/API_docs_v73/methods/messages_saveRecentSticker.md
index 98c74efd..072b6fe9 100644
--- a/old_docs/API_docs_v73/methods/messages_saveRecentSticker.md
+++ b/old_docs/API_docs_v73/methods/messages_saveRecentSticker.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.saveRecentSticker({attached=Bool, id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_search.md b/old_docs/API_docs_v73/methods/messages_search.md
index 7b95c3cf..a0a88452 100644
--- a/old_docs/API_docs_v73/methods/messages_search.md
+++ b/old_docs/API_docs_v73/methods/messages_search.md
@@ -52,16 +52,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({peer=InputPeer, q='string', from_id=InputUser, filter=MessagesFilter, min_date=int, max_date=int, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_searchGifs.md b/old_docs/API_docs_v73/methods/messages_searchGifs.md
index 7be4173b..1602d35e 100644
--- a/old_docs/API_docs_v73/methods/messages_searchGifs.md
+++ b/old_docs/API_docs_v73/methods/messages_searchGifs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_FoundGifs = messages.searchGifs({q='string', offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v73/methods/messages_searchGlobal.md b/old_docs/API_docs_v73/methods/messages_searchGlobal.md
index fb38398b..c8da163c 100644
--- a/old_docs/API_docs_v73/methods/messages_searchGlobal.md
+++ b/old_docs/API_docs_v73/methods/messages_searchGlobal.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
messages_Messages = messages.searchGlobal({q='string', offset_date=int, offset_peer=InputPeer, offset_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v73/methods/messages_sendEncrypted.md b/old_docs/API_docs_v73/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v73/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v73/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v73/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v73/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v73/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v73/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v73/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v73/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v73/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v73/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v73/methods/messages_sendInlineBotResult.md b/old_docs/API_docs_v73/methods/messages_sendInlineBotResult.md
index 9ffa02ae..a2b57f4d 100644
--- a/old_docs/API_docs_v73/methods/messages_sendInlineBotResult.md
+++ b/old_docs/API_docs_v73/methods/messages_sendInlineBotResult.md
@@ -48,15 +48,15 @@ Or, if you're into Lua:
Updates = messages.sendInlineBotResult({silent=Bool, background=Bool, clear_draft=Bool, peer=InputPeer, reply_to_msg_id=int, query_id=long, id='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INLINE_RESULT_EXPIRED|The inline query expired|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|QUERY_ID_EMPTY|The query ID is empty|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INLINE_RESULT_EXPIRED|The inline query expired|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|QUERY_ID_EMPTY|The query ID is empty|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v73/methods/messages_sendMedia.md b/old_docs/API_docs_v73/methods/messages_sendMedia.md
index 89dc5572..9bfd0743 100644
--- a/old_docs/API_docs_v73/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v73/methods/messages_sendMedia.md
@@ -54,31 +54,31 @@ Updates = messages.sendMedia({silent=Bool, background=Bool, clear_draft=Bool, pe
You can provide bot API reply_markup objects here.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v73/methods/messages_sendMessage.md b/old_docs/API_docs_v73/methods/messages_sendMessage.md
index 5641ebc3..e0ab305d 100644
--- a/old_docs/API_docs_v73/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v73/methods/messages_sendMessage.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v73/methods/messages_sendMultiMedia.md b/old_docs/API_docs_v73/methods/messages_sendMultiMedia.md
index 9ebdcb88..5684a6d2 100644
--- a/old_docs/API_docs_v73/methods/messages_sendMultiMedia.md
+++ b/old_docs/API_docs_v73/methods/messages_sendMultiMedia.md
@@ -47,11 +47,11 @@ Or, if you're into Lua:
Updates = messages.sendMultiMedia({silent=Bool, background=Bool, clear_draft=Bool, peer=InputPeer, reply_to_msg_id=int, multi_media={InputSingleMedia}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_sendScreenshotNotification.md b/old_docs/API_docs_v73/methods/messages_sendScreenshotNotification.md
index 3f5bb36d..4e4e40f5 100644
--- a/old_docs/API_docs_v73/methods/messages_sendScreenshotNotification.md
+++ b/old_docs/API_docs_v73/methods/messages_sendScreenshotNotification.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = messages.sendScreenshotNotification({peer=InputPeer, reply_to_msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_setBotCallbackAnswer.md b/old_docs/API_docs_v73/methods/messages_setBotCallbackAnswer.md
index ed058b4f..630ca61c 100644
--- a/old_docs/API_docs_v73/methods/messages_setBotCallbackAnswer.md
+++ b/old_docs/API_docs_v73/methods/messages_setBotCallbackAnswer.md
@@ -52,11 +52,11 @@ Bool = messages.setBotCallbackAnswer({alert=Bool, query_id=long, message='string
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|URL_INVALID|Invalid URL provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|URL_INVALID|Invalid URL provided|
diff --git a/old_docs/API_docs_v73/methods/messages_setBotPrecheckoutResults.md b/old_docs/API_docs_v73/methods/messages_setBotPrecheckoutResults.md
index cc615123..d6e0e61b 100644
--- a/old_docs/API_docs_v73/methods/messages_setBotPrecheckoutResults.md
+++ b/old_docs/API_docs_v73/methods/messages_setBotPrecheckoutResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotPrecheckoutResults({success=Bool, query_id=long, error='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ERROR_TEXT_EMPTY|The provided error message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ERROR_TEXT_EMPTY|The provided error message is empty|
diff --git a/old_docs/API_docs_v73/methods/messages_setBotShippingResults.md b/old_docs/API_docs_v73/methods/messages_setBotShippingResults.md
index f3a86f4f..adc4f64f 100644
--- a/old_docs/API_docs_v73/methods/messages_setBotShippingResults.md
+++ b/old_docs/API_docs_v73/methods/messages_setBotShippingResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotShippingResults({query_id=long, error='string', shipping_options={ShippingOption}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v73/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v73/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v73/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_setGameScore.md b/old_docs/API_docs_v73/methods/messages_setGameScore.md
index 548ee889..429b04c6 100644
--- a/old_docs/API_docs_v73/methods/messages_setGameScore.md
+++ b/old_docs/API_docs_v73/methods/messages_setGameScore.md
@@ -47,12 +47,12 @@ Or, if you're into Lua:
Updates = messages.setGameScore({edit_message=Bool, force=Bool, peer=InputPeer, id=int, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v73/methods/messages_setInlineBotResults.md b/old_docs/API_docs_v73/methods/messages_setInlineBotResults.md
index ab388e39..df4c30d4 100644
--- a/old_docs/API_docs_v73/methods/messages_setInlineBotResults.md
+++ b/old_docs/API_docs_v73/methods/messages_setInlineBotResults.md
@@ -48,23 +48,23 @@ Or, if you're into Lua:
Bool = messages.setInlineBotResults({gallery=Bool, private=Bool, query_id=long, results={InputBotInlineResult}, cache_time=int, next_offset='string', switch_pm=InlineBotSwitchPM, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ARTICLE_TITLE_EMPTY|The title of the article is empty|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|PHOTO_INVALID|Photo invalid|
-|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
-|QUERY_ID_INVALID|The query ID is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|RESULT_TYPE_INVALID|Result type invalid|
-|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
-|START_PARAM_INVALID|Start parameter invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ARTICLE_TITLE_EMPTY|The title of the article is empty|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|PHOTO_INVALID|Photo invalid|
+|400|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|RESULT_TYPE_INVALID|Result type invalid|
+|400|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
+|400|START_PARAM_INVALID|Start parameter invalid|
+|403|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v73/methods/messages_setInlineGameScore.md b/old_docs/API_docs_v73/methods/messages_setInlineGameScore.md
index 5eeb1540..62b163d5 100644
--- a/old_docs/API_docs_v73/methods/messages_setInlineGameScore.md
+++ b/old_docs/API_docs_v73/methods/messages_setInlineGameScore.md
@@ -46,11 +46,11 @@ Or, if you're into Lua:
Bool = messages.setInlineGameScore({edit_message=Bool, force=Bool, id=InputBotInlineMessageID, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v73/methods/messages_setTyping.md b/old_docs/API_docs_v73/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v73/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v73/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v73/methods/messages_startBot.md b/old_docs/API_docs_v73/methods/messages_startBot.md
index aa2b2d00..4bf12aa6 100644
--- a/old_docs/API_docs_v73/methods/messages_startBot.md
+++ b/old_docs/API_docs_v73/methods/messages_startBot.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = messages.startBot({bot=InputUser, peer=InputPeer, start_param='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INVALID|This is not a valid bot|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|START_PARAM_EMPTY|The start parameter is empty|
-|START_PARAM_INVALID|Start parameter invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INVALID|This is not a valid bot|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|START_PARAM_EMPTY|The start parameter is empty|
+|400|START_PARAM_INVALID|Start parameter invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_toggleChatAdmins.md b/old_docs/API_docs_v73/methods/messages_toggleChatAdmins.md
index 7851806d..8ea6e65e 100644
--- a/old_docs/API_docs_v73/methods/messages_toggleChatAdmins.md
+++ b/old_docs/API_docs_v73/methods/messages_toggleChatAdmins.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.toggleChatAdmins({chat_id=InputPeer, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v73/methods/messages_toggleDialogPin.md b/old_docs/API_docs_v73/methods/messages_toggleDialogPin.md
index 888f9a25..d44e4abc 100644
--- a/old_docs/API_docs_v73/methods/messages_toggleDialogPin.md
+++ b/old_docs/API_docs_v73/methods/messages_toggleDialogPin.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.toggleDialogPin({pinned=Bool, peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_uninstallStickerSet.md b/old_docs/API_docs_v73/methods/messages_uninstallStickerSet.md
index 59abc510..6b7a2006 100644
--- a/old_docs/API_docs_v73/methods/messages_uninstallStickerSet.md
+++ b/old_docs/API_docs_v73/methods/messages_uninstallStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.uninstallStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v73/methods/messages_uploadMedia.md b/old_docs/API_docs_v73/methods/messages_uploadMedia.md
index afc806fe..09fc074c 100644
--- a/old_docs/API_docs_v73/methods/messages_uploadMedia.md
+++ b/old_docs/API_docs_v73/methods/messages_uploadMedia.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
MessageMedia = messages.uploadMedia({peer=InputPeer, media=InputMedia, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v73/methods/payments_getPaymentForm.md b/old_docs/API_docs_v73/methods/payments_getPaymentForm.md
index e8e04f37..4c28121f 100644
--- a/old_docs/API_docs_v73/methods/payments_getPaymentForm.md
+++ b/old_docs/API_docs_v73/methods/payments_getPaymentForm.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentForm = payments.getPaymentForm({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v73/methods/payments_getPaymentReceipt.md b/old_docs/API_docs_v73/methods/payments_getPaymentReceipt.md
index acb1c209..0e2f76a8 100644
--- a/old_docs/API_docs_v73/methods/payments_getPaymentReceipt.md
+++ b/old_docs/API_docs_v73/methods/payments_getPaymentReceipt.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentReceipt = payments.getPaymentReceipt({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v73/methods/payments_sendPaymentForm.md b/old_docs/API_docs_v73/methods/payments_sendPaymentForm.md
index b8fa905d..1910ede8 100644
--- a/old_docs/API_docs_v73/methods/payments_sendPaymentForm.md
+++ b/old_docs/API_docs_v73/methods/payments_sendPaymentForm.md
@@ -45,10 +45,10 @@ Or, if you're into Lua:
payments_PaymentResult = payments.sendPaymentForm({msg_id=int, requested_info_id='string', shipping_option_id='string', credentials=InputPaymentCredentials, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v73/methods/payments_validateRequestedInfo.md b/old_docs/API_docs_v73/methods/payments_validateRequestedInfo.md
index 3b9da7e6..f18e1660 100644
--- a/old_docs/API_docs_v73/methods/payments_validateRequestedInfo.md
+++ b/old_docs/API_docs_v73/methods/payments_validateRequestedInfo.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
payments_ValidatedRequestedInfo = payments.validateRequestedInfo({save=Bool, msg_id=int, info=PaymentRequestedInfo, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v73/methods/phone_acceptCall.md b/old_docs/API_docs_v73/methods/phone_acceptCall.md
index b75ac65b..f5c58f01 100644
--- a/old_docs/API_docs_v73/methods/phone_acceptCall.md
+++ b/old_docs/API_docs_v73/methods/phone_acceptCall.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->acceptCall(['peer' => InputPhoneCall, 'g_b' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.acceptCall({peer=InputPhoneCall, g_b='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
diff --git a/old_docs/API_docs_v73/methods/phone_confirmCall.md b/old_docs/API_docs_v73/methods/phone_confirmCall.md
index 1a75563d..468307cc 100644
--- a/old_docs/API_docs_v73/methods/phone_confirmCall.md
+++ b/old_docs/API_docs_v73/methods/phone_confirmCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->confirmCall(['peer' => InputPhoneCall, 'g_a' => 'bytes', 'key_fingerprint' => long, 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.confirmCall({peer=InputPhoneCall, g_a='bytes', key_fingerprint=long, protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v73/methods/phone_discardCall.md b/old_docs/API_docs_v73/methods/phone_discardCall.md
index e50456eb..ffaa18ea 100644
--- a/old_docs/API_docs_v73/methods/phone_discardCall.md
+++ b/old_docs/API_docs_v73/methods/phone_discardCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|duration|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|reason|[PhoneCallDiscardReason](../types/PhoneCallDiscardReason.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|connection\_id|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [Updates](../types/Updates.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Updates = $MadelineProto->phone->discardCall(['peer' => InputPhoneCall, 'duration' => int, 'reason' => PhoneCallDiscardReason, 'connection_id' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Updates = phone.discardCall({peer=InputPhoneCall, duration=int, reason=PhoneCallDiscardReason, connection_id=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v73/methods/phone_receivedCall.md b/old_docs/API_docs_v73/methods/phone_receivedCall.md
index c43bc8ac..6091424b 100644
--- a/old_docs/API_docs_v73/methods/phone_receivedCall.md
+++ b/old_docs/API_docs_v73/methods/phone_receivedCall.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Bool = phone.receivedCall({peer=InputPhoneCall, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_ALREADY_DECLINED|The call was already declined|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v73/methods/phone_requestCall.md b/old_docs/API_docs_v73/methods/phone_requestCall.md
index 9b8df564..c8e828f2 100644
--- a/old_docs/API_docs_v73/methods/phone_requestCall.md
+++ b/old_docs/API_docs_v73/methods/phone_requestCall.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Optional|
+|g\_a\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->requestCall(['user_id' => InputUser, 'g_a_hash' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.requestCall({user_id=InputUser, g_a_hash='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
+|400|PARTICIPANT_VERSION_OUTDATED|The other participant does not use an up to date telegram client with support for calls|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|403|USER_IS_BLOCKED|You were blocked by this user|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v73/methods/phone_saveCallDebug.md b/old_docs/API_docs_v73/methods/phone_saveCallDebug.md
index 8acbc353..1e793c05 100644
--- a/old_docs/API_docs_v73/methods/phone_saveCallDebug.md
+++ b/old_docs/API_docs_v73/methods/phone_saveCallDebug.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = phone.saveCallDebug({peer=InputPhoneCall, debug=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
-|DATA_JSON_INVALID|The provided JSON data is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|DATA_JSON_INVALID|The provided JSON data is invalid|
diff --git a/old_docs/API_docs_v73/methods/phone_setCallRating.md b/old_docs/API_docs_v73/methods/phone_setCallRating.md
index 9bc6bdd0..9daed209 100644
--- a/old_docs/API_docs_v73/methods/phone_setCallRating.md
+++ b/old_docs/API_docs_v73/methods/phone_setCallRating.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Updates = phone.setCallRating({peer=InputPhoneCall, rating=int, comment='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v73/methods/photos_getUserPhotos.md b/old_docs/API_docs_v73/methods/photos_getUserPhotos.md
index 57f5772b..a01f3180 100644
--- a/old_docs/API_docs_v73/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v73/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v73/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v73/methods/photos_updateProfilePhoto.md
index cca2fe30..f7c91ec6 100644
--- a/old_docs/API_docs_v73/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v73/methods/photos_updateProfilePhoto.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v73/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v73/methods/photos_uploadProfilePhoto.md
index 457bade8..badde2de 100644
--- a/old_docs/API_docs_v73/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v73/methods/photos_uploadProfilePhoto.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v73/methods/stickers_addStickerToSet.md b/old_docs/API_docs_v73/methods/stickers_addStickerToSet.md
index 78e8437c..b1fa2aad 100644
--- a/old_docs/API_docs_v73/methods/stickers_addStickerToSet.md
+++ b/old_docs/API_docs_v73/methods/stickers_addStickerToSet.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.addStickerToSet({stickerset=InputStickerSet, sticker=InputStickerSetItem, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v73/methods/stickers_changeStickerPosition.md b/old_docs/API_docs_v73/methods/stickers_changeStickerPosition.md
index cddc1cbb..98dde67e 100644
--- a/old_docs/API_docs_v73/methods/stickers_changeStickerPosition.md
+++ b/old_docs/API_docs_v73/methods/stickers_changeStickerPosition.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.changeStickerPosition({sticker=InputDocument, position=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/old_docs/API_docs_v73/methods/stickers_createStickerSet.md b/old_docs/API_docs_v73/methods/stickers_createStickerSet.md
index 41e4ad11..741e0ad6 100644
--- a/old_docs/API_docs_v73/methods/stickers_createStickerSet.md
+++ b/old_docs/API_docs_v73/methods/stickers_createStickerSet.md
@@ -46,18 +46,18 @@ Or, if you're into Lua:
messages_StickerSet = stickers.createStickerSet({masks=Bool, user_id=InputUser, title='string', short_name='string', stickers={InputStickerSetItem}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|PACK_SHORT_NAME_INVALID|Short pack name invalid|
-|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|STICKER_EMOJI_INVALID|Sticker emoji invalid|
-|STICKER_FILE_INVALID|Sticker file invalid|
-|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
-|STICKERS_EMPTY|No sticker provided|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|PACK_SHORT_NAME_INVALID|Short pack name invalid|
+|400|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|STICKER_EMOJI_INVALID|Sticker emoji invalid|
+|400|STICKER_FILE_INVALID|Sticker file invalid|
+|400|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
+|400|STICKERS_EMPTY|No sticker provided|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v73/methods/stickers_removeStickerFromSet.md b/old_docs/API_docs_v73/methods/stickers_removeStickerFromSet.md
index ea4621f2..d1fc4339 100644
--- a/old_docs/API_docs_v73/methods/stickers_removeStickerFromSet.md
+++ b/old_docs/API_docs_v73/methods/stickers_removeStickerFromSet.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.removeStickerFromSet({sticker=InputDocument, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/old_docs/API_docs_v73/methods/updates_getChannelDifference.md b/old_docs/API_docs_v73/methods/updates_getChannelDifference.md
index 6fa79529..9735c14a 100644
--- a/old_docs/API_docs_v73/methods/updates_getChannelDifference.md
+++ b/old_docs/API_docs_v73/methods/updates_getChannelDifference.md
@@ -7,8 +7,56 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|force|[Bool](../types/Bool.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|filter|[ChannelMessagesFilter](../types/ChannelMessagesFilter.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_ChannelDifference](../types/updates_ChannelDifference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_ChannelDifference = $MadelineProto->updates->getChannelDifference(['force' => Bool, 'channel' => InputChannel, 'filter' => ChannelMessagesFilter, 'pts' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_ChannelDifference = updates.getChannelDifference({force=Bool, channel=InputChannel, filter=ChannelMessagesFilter, pts=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|400|RANGES_INVALID|Invalid range provided|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v73/methods/updates_getDifference.md b/old_docs/API_docs_v73/methods/updates_getDifference.md
index 33e7d7f2..bcfac4e2 100644
--- a/old_docs/API_docs_v73/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v73/methods/updates_getDifference.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|pts\_total\_limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'pts_total_limit' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, pts_total_limit=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v73/methods/updates_getState.md b/old_docs/API_docs_v73/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v73/methods/updates_getState.md
+++ b/old_docs/API_docs_v73/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v73/methods/upload_getCdnFile.md b/old_docs/API_docs_v73/methods/upload_getCdnFile.md
index 5e5b3f43..be9ad311 100644
--- a/old_docs/API_docs_v73/methods/upload_getCdnFile.md
+++ b/old_docs/API_docs_v73/methods/upload_getCdnFile.md
@@ -7,8 +7,40 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_CdnFile](../types/upload_CdnFile.md)
+
+### Can bots use this method: **NO**
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_CdnFile = $MadelineProto->upload->getCdnFile(['file_token' => 'bytes', 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_CdnFile = upload.getCdnFile({file_token='bytes', offset=int, limit=int, })
+```
+
diff --git a/old_docs/API_docs_v73/methods/upload_getCdnFileHashes.md b/old_docs/API_docs_v73/methods/upload_getCdnFileHashes.md
index ea6a8e75..4c7c341a 100644
--- a/old_docs/API_docs_v73/methods/upload_getCdnFileHashes.md
+++ b/old_docs/API_docs_v73/methods/upload_getCdnFileHashes.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Vector\_of\_CdnFileHash](../types/CdnFileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_CdnFileHash = $MadelineProto->upload->getCdnFileHashes(['file_token' => 'bytes', 'offset' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_CdnFileHash = upload.getCdnFileHashes({file_token='bytes', offset=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/old_docs/API_docs_v73/methods/upload_getFile.md b/old_docs/API_docs_v73/methods/upload_getFile.md
index c72e6090..d8b433d6 100644
--- a/old_docs/API_docs_v73/methods/upload_getFile.md
+++ b/old_docs/API_docs_v73/methods/upload_getFile.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v73/methods/upload_getWebFile.md b/old_docs/API_docs_v73/methods/upload_getWebFile.md
index 21179a66..7b63f96c 100644
--- a/old_docs/API_docs_v73/methods/upload_getWebFile.md
+++ b/old_docs/API_docs_v73/methods/upload_getWebFile.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
upload_WebFile = upload.getWebFile({location=InputWebFileLocation, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LOCATION_INVALID|The provided location is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LOCATION_INVALID|The provided location is invalid|
diff --git a/old_docs/API_docs_v73/methods/upload_reuploadCdnFile.md b/old_docs/API_docs_v73/methods/upload_reuploadCdnFile.md
index cc20d5e3..ef42f7b4 100644
--- a/old_docs/API_docs_v73/methods/upload_reuploadCdnFile.md
+++ b/old_docs/API_docs_v73/methods/upload_reuploadCdnFile.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|request\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Vector\_of\_CdnFileHash](../types/CdnFileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_CdnFileHash = $MadelineProto->upload->reuploadCdnFile(['file_token' => 'bytes', 'request_token' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_CdnFileHash = upload.reuploadCdnFile({file_token='bytes', request_token='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/old_docs/API_docs_v73/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v73/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v73/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v73/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v73/methods/upload_saveFilePart.md b/old_docs/API_docs_v73/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v73/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v73/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v73/methods/users_getFullUser.md b/old_docs/API_docs_v73/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v73/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v73/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v73/methods/users_getUsers.md b/old_docs/API_docs_v73/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v73/methods/users_getUsers.md
+++ b/old_docs/API_docs_v73/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v75/methods/README.md b/old_docs/API_docs_v75/methods/README.md
index 5fc2ec74..a161eab6 100644
--- a/old_docs/API_docs_v75/methods/README.md
+++ b/old_docs/API_docs_v75/methods/README.md
@@ -30,425 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Add a sticker set: messages.installStickerSet
-
-* Add a sticker to favorites: messages.faveSticker
-
-* Add a sticker to recent stickers: messages.saveRecentSticker
-
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add phone number as contact: contacts.importContacts
-
-* Add sticker to stickerset: stickers.addStickerToSet
-
-* Add users to channel/supergroup: channels.inviteToChannel
-
-* Allow or disallow any user to invite users to this channel/supergroup: channels.toggleInvites
-
-* Block a user: contacts.block
-
-* Bots only: send payment form: payments.sendPaymentForm
-
-* Bots only: set precheckout results: messages.setBotPrecheckoutResults
-
-* Bots only: set shipping results: messages.setBotShippingResults
-
-* Bots only: set the callback answer (after a button was clicked): messages.setBotCallbackAnswer
-
-* Bots only: set the results of an inline query: messages.setInlineBotResults
-
-* Call inline bot: messages.getInlineBotResults
-
-* Change notification settings: account.updateNotifySettings
-
-* Change sticker position in photo: stickers.changeStickerPosition
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if about to edit a message or a media caption: messages.getMessageEditData
-
-* Check if an invitation link is valid: messages.checkChatInvite
-
-* Check if this phone number is registered on telegram: auth.checkPhone
-
-* Check if this username is available: account.checkUsername
-
-* Check if this username is free and can be assigned to a channel/supergroup: channels.checkUsername
-
-* Clear all recent stickers: messages.clearRecentStickers
-
-* Clear saved payments info: payments.clearSavedInfo
-
-* Confirm this phone number is associated to this account, obtain phone_code_hash from sendConfirmPhoneCode: account.confirmPhone
-
-* Convert chat to supergroup: messages.migrateChat
-
-* Create a chat (not supergroup): messages.createChat
-
-* Create channel/supergroup: channels.createChannel
-
-* Create stickerset: stickers.createStickerSet
-
-* Delete a certain session: account.resetAuthorization
-
-* Delete a certain telegram web login authorization: account.resetWebAuthorization
-
-* Delete a channel/supergroup: channels.deleteChannel
-
-* Delete a contact: contacts.deleteContact
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete all messages of a user in a channel/supergroup: channels.deleteUserHistory
-
-* Delete all temporary authorization keys except the ones provided: auth.dropTempAuthKeys
-
-* Delete channel/supergroup messages: channels.deleteMessages
-
-* Delete chat history: messages.deleteHistory
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete the history of a supergroup/channel: channels.deleteHistory
-
-* Delete this account: account.deleteAccount
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Download a file through telegram: upload.getWebFile
-
-* Edit a message: messages.editMessage
-
-* Edit a sent inline message: messages.editInlineBotMessage
-
-* Edit admin permissions of a user in a channel/supergroup: channels.editAdmin
-
-* Edit admin permissions: messages.editChatAdmin
-
-* Edit the about text of a channel/supergroup: channels.editAbout
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the photo of a supergroup/channel: channels.editPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Edit the title of a supergroup/channel: channels.editTitle
-
-* Enable all users are admins in normal groups (not supergroups): messages.toggleChatAdmins
-
-* Enable or disable hidden history for new channel/supergroup users: channels.togglePreHistoryHidden
-
-* Export chat invite : messages.exportChatInvite
-
-* Export contact as card: contacts.exportCard
-
-* Export the invite link of a channel: channels.exportInvite
-
-* Forward messages: messages.forwardMessages
-
-* Get CDN configuration: help.getCdnConfig
-
-* Get a stickerset: messages.getStickerSet
-
-* Get account TTL: account.getAccountTTL
-
-* Get admin log of a channel/supergroup: channels.getAdminLog
-
-* Get all archived stickers: messages.getArchivedStickers
-
-* Get all chats (not supergroups or channels): messages.getAllChats
-
-* Get all contacts: contacts.getContacts
-
-* Get all logged-in authorizations: account.getAuthorizations
-
-* Get all message drafts: messages.getAllDrafts
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get all supergroups/channels where you're admin: channels.getAdminedPublicChannels
-
-* Get and increase message views: messages.getMessagesViews
-
-* Get available languages: langpack.getLanguages
-
-* Get blocked users: contacts.getBlocked
-
-* Get call configuration: phone.getCallConfig
-
-* Get channel/supergroup messages: channels.getMessages
-
-* Get channel/supergroup participants (you should use `$MadelineProto->get_pwr_chat($id)` instead): channels.getParticipants
-
-* Get chats in common with a user: messages.getCommonChats
-
-* Get dialog info of peers: messages.getPeerDialogs
-
-* Get document by SHA256 hash: messages.getDocumentByHash
-
-* Get favorite stickers: messages.getFavedStickers
-
-* Get featured stickers: messages.getFeaturedStickers
-
-* Get high scores of a game sent in an inline message: messages.getInlineGameHighScores
-
-* Get high scores of a game: messages.getGameHighScores
-
-* Get info about a certain channel/supergroup participant: channels.getParticipant
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about multiple channels/supergroups: channels.getChannels
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get invitation text: help.getInviteText
-
-* Get language pack strings: langpack.getStrings
-
-* Get language pack updates: langpack.getDifference
-
-* Get language pack: langpack.getLangPack
-
-* Get masks: messages.getMaskStickers
-
-* Get messages: messages.getMessages
-
-* Get most used chats: contacts.getTopPeers
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get payment form: payments.getPaymentForm
-
-* Get payment receipt: payments.getPaymentReceipt
-
-* Get pinned dialogs: messages.getPinnedDialogs
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get recent locations: messages.getRecentLocations
-
-* Get recent stickers: messages.getRecentStickers
-
-* Get recent t.me URLs: help.getRecentMeUrls
-
-* Get saved gifs: messages.getSavedGifs
-
-* Get saved payments info: payments.getSavedInfo
-
-* Get server configuration: help.getConfig
-
-* Get stickers attachable to images: messages.getAttachedStickers
-
-* Get stickers: messages.getStickers
-
-* Get telegram web login authorizations: account.getWebAuthorizations
-
-* Get temporary password for buying products through bots: account.getTmpPassword
-
-* Get terms of service: help.getTermsOfService
-
-* Get the callback answer of a bot (after clicking a button): messages.getBotCallbackAnswer
-
-* Get the changelog of this app: help.getAppChangelog
-
-* Get the current password: account.getPassword
-
-* Get the link of a message in a channel: channels.exportMessageLink
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Get the settings of apeer: messages.getPeerSettings
-
-* Get unread mentions: messages.getUnreadMentions
-
-* Get webpage preview: messages.getWebPage
-
-* Get webpage preview: messages.getWebPagePreview
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Global message search: messages.searchGlobal
-
-* Hide report spam popup: messages.hideReportSpam
-
-* Import card as contact: contacts.importCard
-
-* Import chat invite: messages.importChatInvite
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Invalidate sent phone code: auth.cancelCode
-
-* Invite friends to telegram!: auth.sendInvites
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invoke with method without returning updates in the socket: invokeWithoutUpdates
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Join a channel/supergroup: channels.joinChannel
-
-* Kick or ban a user from a channel/supergroup: channels.editBanned
-
-* Leave a channel/supergroup: channels.leaveChannel
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark channel/supergroup history as read: channels.readHistory
-
-* Mark channel/supergroup messages as read: channels.readMessageContents
-
-* Mark mentions as read: messages.readMentions
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Mark new featured stickers as read: messages.readFeaturedStickers
-
-* Notify server that you received a call (server will refuse all incoming calls until the current call is over): phone.receivedCall
-
-* Pin or unpin dialog: messages.toggleDialogPin
-
-* Register device for push notifications: account.registerDevice
-
-* Remove a sticker set: messages.uninstallStickerSet
-
-* Remove sticker from stickerset: stickers.removeStickerFromSet
-
-* Reorder pinned dialogs: messages.reorderPinnedDialogs
-
-* Reorder sticker sets: messages.reorderStickerSets
-
-* Report a message in a supergroup/channel for spam: channels.reportSpam
-
-* Report a peer for spam: messages.reportSpam
-
-* Report for spam a secret chat: messages.reportEncryptedSpam
-
-* Report for spam: account.reportPeer
-
-* Resend the SMS verification code: auth.resendCode
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Reset all telegram web login authorizations: account.resetWebAuthorizations
-
-* Reset saved contacts: contacts.resetSaved
-
-* Reset top peer rating for a certain category/peer: contacts.resetTopPeerRating
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Save a GIF: messages.saveGif
-
-* Save a message draft: messages.saveDraft
-
-* Save call debugging info: phone.saveCallDebug
-
-* Search contacts: contacts.search
-
-* Search gifs: messages.searchGifs
-
-* Search peers or messages: messages.search
-
-* Send a custom request to the bot API: bots.sendCustomRequest
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send an album: messages.sendMultiMedia
-
-* Send an email to recover the 2FA password: auth.requestPasswordRecovery
-
-* Send confirmation phone code: account.sendConfirmPhoneCode
-
-* Send inline bot result obtained with messages.getInlineBotResults to the chat: messages.sendInlineBotResult
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send screenshot notification: messages.sendScreenshotNotification
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Send webhook request via bot API: bots.answerWebhookJSONQuery
-
-* Set account TTL: account.setAccountTTL
-
-* Set phone call rating: phone.setCallRating
-
-* Set privacy settings: account.setPrivacy
-
-* Set the game score of an inline message: messages.setInlineGameScore
-
-* Set the game score: messages.setGameScore
-
-* Set the pinned message of a channel/supergroup: channels.updatePinnedMessage
-
-* Set the supergroup/channel stickerpack: channels.setStickers
-
-* Set the update status of webhook: help.setBotUpdatesStatus
-
-* Start a bot: messages.startBot
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Toggle channel signatures: channels.toggleSignatures
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update profile info: account.updateProfile
-
-* Update the username of a supergroup/channel: channels.updateUsername
-
-* Update this user's username: account.updateUsername
-
-* Upload a file without sending it to anyone: messages.uploadMedia
-
-* Upload a secret chat file without sending it to anyone: messages.uploadEncryptedFile
-
-* Upload profile photo: photos.uploadProfilePhoto
-
-* Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
-
-* Validate requested payment info: payments.validateRequestedInfo
-
diff --git a/old_docs/API_docs_v75/methods/account_changePhone.md b/old_docs/API_docs_v75/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/old_docs/API_docs_v75/methods/account_changePhone.md
+++ b/old_docs/API_docs_v75/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v75/methods/account_checkUsername.md b/old_docs/API_docs_v75/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v75/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v75/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v75/methods/account_confirmPhone.md b/old_docs/API_docs_v75/methods/account_confirmPhone.md
index b730c2dc..c114cd20 100644
--- a/old_docs/API_docs_v75/methods/account_confirmPhone.md
+++ b/old_docs/API_docs_v75/methods/account_confirmPhone.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = account.confirmPhone({phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_HASH_INVALID|Code hash invalid|
-|PHONE_CODE_EMPTY|phone_code is missing|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_HASH_INVALID|Code hash invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
diff --git a/old_docs/API_docs_v75/methods/account_getNotifySettings.md b/old_docs/API_docs_v75/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v75/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v75/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v75/methods/account_getPasswordSettings.md b/old_docs/API_docs_v75/methods/account_getPasswordSettings.md
index 8ebb78ee..8f878365 100644
--- a/old_docs/API_docs_v75/methods/account_getPasswordSettings.md
+++ b/old_docs/API_docs_v75/methods/account_getPasswordSettings.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+Get the current 2FA settings
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+### Return type: [account\_PasswordSettings](../types/account_PasswordSettings.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$account_PasswordSettings = $MadelineProto->account->getPasswordSettings(['current_password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+account_PasswordSettings = account.getPasswordSettings({current_password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v75/methods/account_getPrivacy.md b/old_docs/API_docs_v75/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/old_docs/API_docs_v75/methods/account_getPrivacy.md
+++ b/old_docs/API_docs_v75/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v75/methods/account_getTmpPassword.md b/old_docs/API_docs_v75/methods/account_getTmpPassword.md
index fd8314ee..a74d0f5a 100644
--- a/old_docs/API_docs_v75/methods/account_getTmpPassword.md
+++ b/old_docs/API_docs_v75/methods/account_getTmpPassword.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
account_TmpPassword = account.getTmpPassword({password_hash='bytes', period=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_HASH_INVALID|The provided password hash is invalid|
-|TMP_PASSWORD_DISABLED|The temporary password is disabled|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
+|400|TMP_PASSWORD_DISABLED|The temporary password is disabled|
diff --git a/old_docs/API_docs_v75/methods/account_registerDevice.md b/old_docs/API_docs_v75/methods/account_registerDevice.md
index e26cde76..711d262c 100644
--- a/old_docs/API_docs_v75/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v75/methods/account_registerDevice.md
@@ -45,10 +45,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({token_type=int, token='string', app_sandbox=Bool, other_uids={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v75/methods/account_reportPeer.md b/old_docs/API_docs_v75/methods/account_reportPeer.md
index a203c900..87b080eb 100644
--- a/old_docs/API_docs_v75/methods/account_reportPeer.md
+++ b/old_docs/API_docs_v75/methods/account_reportPeer.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.reportPeer({peer=InputPeer, reason=ReportReason, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v75/methods/account_resetAuthorization.md b/old_docs/API_docs_v75/methods/account_resetAuthorization.md
index c950992c..e8e8ecc4 100644
--- a/old_docs/API_docs_v75/methods/account_resetAuthorization.md
+++ b/old_docs/API_docs_v75/methods/account_resetAuthorization.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.resetAuthorization({hash=long, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v75/methods/account_sendChangePhoneCode.md b/old_docs/API_docs_v75/methods/account_sendChangePhoneCode.md
index d5be60ef..08e5e86e 100644
--- a/old_docs/API_docs_v75/methods/account_sendChangePhoneCode.md
+++ b/old_docs/API_docs_v75/methods/account_sendChangePhoneCode.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendChangePhoneCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v75/methods/account_sendConfirmPhoneCode.md b/old_docs/API_docs_v75/methods/account_sendConfirmPhoneCode.md
index 028a1fdc..9fa7b57e 100644
--- a/old_docs/API_docs_v75/methods/account_sendConfirmPhoneCode.md
+++ b/old_docs/API_docs_v75/methods/account_sendConfirmPhoneCode.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendConfirmPhoneCode({allow_flashcall=Bool, hash='string', current_number=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v75/methods/account_setAccountTTL.md b/old_docs/API_docs_v75/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/old_docs/API_docs_v75/methods/account_setAccountTTL.md
+++ b/old_docs/API_docs_v75/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/old_docs/API_docs_v75/methods/account_setPrivacy.md b/old_docs/API_docs_v75/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/old_docs/API_docs_v75/methods/account_setPrivacy.md
+++ b/old_docs/API_docs_v75/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v75/methods/account_unregisterDevice.md b/old_docs/API_docs_v75/methods/account_unregisterDevice.md
index 13d11e88..e39f0811 100644
--- a/old_docs/API_docs_v75/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v75/methods/account_unregisterDevice.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', other_uids={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v75/methods/account_updateNotifySettings.md b/old_docs/API_docs_v75/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v75/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v75/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v75/methods/account_updatePasswordSettings.md b/old_docs/API_docs_v75/methods/account_updatePasswordSettings.md
index 80f27228..68e5da6d 100644
--- a/old_docs/API_docs_v75/methods/account_updatePasswordSettings.md
+++ b/old_docs/API_docs_v75/methods/account_updatePasswordSettings.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+|new\_settings|[account\_PasswordInputSettings](../types/account_PasswordInputSettings.md) | New 2FA settings | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->account->updatePasswordSettings(['current_password_hash' => 'bytes', 'new_settings' => account_PasswordInputSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = account.updatePasswordSettings({current_password_hash='bytes', new_settings=account_PasswordInputSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EMAIL_UNCONFIRMED|Email unconfirmed|
+|400|EMAIL_UNCONFIRMED_X|The provided email isn't confirmed, X is the length of the verification code that was just sent to the email.|
+|400|NEW_SALT_INVALID|The new salt is invalid|
+|400|NEW_SETTINGS_INVALID|The new settings are invalid|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v75/methods/account_updateProfile.md b/old_docs/API_docs_v75/methods/account_updateProfile.md
index af5b6a0f..0d74c5e5 100644
--- a/old_docs/API_docs_v75/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v75/methods/account_updateProfile.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v75/methods/account_updateStatus.md b/old_docs/API_docs_v75/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v75/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v75/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v75/methods/account_updateUsername.md b/old_docs/API_docs_v75/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v75/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v75/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v75/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v75/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v75/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v75/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v75/methods/auth_cancelCode.md b/old_docs/API_docs_v75/methods/auth_cancelCode.md
index fcbd7713..a69e0118 100644
--- a/old_docs/API_docs_v75/methods/auth_cancelCode.md
+++ b/old_docs/API_docs_v75/methods/auth_cancelCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = auth.cancelCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v75/methods/auth_checkPassword.md b/old_docs/API_docs_v75/methods/auth_checkPassword.md
index 8d76c483..db65cb56 100644
--- a/old_docs/API_docs_v75/methods/auth_checkPassword.md
+++ b/old_docs/API_docs_v75/methods/auth_checkPassword.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->checkPassword(['password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.checkPassword({password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v75/methods/auth_checkPhone.md b/old_docs/API_docs_v75/methods/auth_checkPhone.md
index f3e32365..e974ce7f 100644
--- a/old_docs/API_docs_v75/methods/auth_checkPhone.md
+++ b/old_docs/API_docs_v75/methods/auth_checkPhone.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
auth_CheckedPhone = auth.checkPhone({phone_number='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v75/methods/auth_exportAuthorization.md b/old_docs/API_docs_v75/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v75/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v75/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v75/methods/auth_importAuthorization.md b/old_docs/API_docs_v75/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v75/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v75/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v75/methods/auth_importBotAuthorization.md b/old_docs/API_docs_v75/methods/auth_importBotAuthorization.md
index 1a98c1b9..98a2f8ca 100644
--- a/old_docs/API_docs_v75/methods/auth_importBotAuthorization.md
+++ b/old_docs/API_docs_v75/methods/auth_importBotAuthorization.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|api\_id|[int](../types/int.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_hash|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|bot\_auth\_token|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importBotAuthorization(['api_id' => int, 'api_hash' => 'string', 'bot_auth_token' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importBotAuthorization({api_id=int, api_hash='string', bot_auth_token='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ACCESS_TOKEN_EXPIRED|Access token expired|
+|400|ACCESS_TOKEN_INVALID|Access token invalid|
+|400|API_ID_INVALID|API ID invalid|
diff --git a/old_docs/API_docs_v75/methods/auth_logOut.md b/old_docs/API_docs_v75/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v75/methods/auth_logOut.md
+++ b/old_docs/API_docs_v75/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v75/methods/auth_recoverPassword.md b/old_docs/API_docs_v75/methods/auth_recoverPassword.md
index 83ff5aed..d4bad9c5 100644
--- a/old_docs/API_docs_v75/methods/auth_recoverPassword.md
+++ b/old_docs/API_docs_v75/methods/auth_recoverPassword.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
auth_Authorization = auth.recoverPassword({code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_EMPTY|The provided code is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_EMPTY|The provided code is empty|
diff --git a/old_docs/API_docs_v75/methods/auth_requestPasswordRecovery.md b/old_docs/API_docs_v75/methods/auth_requestPasswordRecovery.md
index 1864bbb0..b6ad57ba 100644
--- a/old_docs/API_docs_v75/methods/auth_requestPasswordRecovery.md
+++ b/old_docs/API_docs_v75/methods/auth_requestPasswordRecovery.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
auth_PasswordRecovery = auth.requestPasswordRecovery({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_EMPTY|The provided password is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_EMPTY|The provided password is empty|
diff --git a/old_docs/API_docs_v75/methods/auth_resendCode.md b/old_docs/API_docs_v75/methods/auth_resendCode.md
index ff7868ea..ec730d75 100644
--- a/old_docs/API_docs_v75/methods/auth_resendCode.md
+++ b/old_docs/API_docs_v75/methods/auth_resendCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = auth.resendCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v75/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v75/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v75/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v75/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v75/methods/auth_sendCode.md b/old_docs/API_docs_v75/methods/auth_sendCode.md
index 9afebb55..1e9d1a4e 100644
--- a/old_docs/API_docs_v75/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v75/methods/auth_sendCode.md
@@ -7,8 +7,59 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|allow\_flashcall|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|current\_number|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['allow_flashcall' => Bool, 'phone_number' => 'string', 'current_number' => Bool, 'api_id' => int, 'api_hash' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, api_id=int, api_hash='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v75/methods/auth_sendInvites.md b/old_docs/API_docs_v75/methods/auth_sendInvites.md
index e10c1109..4c11023e 100644
--- a/old_docs/API_docs_v75/methods/auth_sendInvites.md
+++ b/old_docs/API_docs_v75/methods/auth_sendInvites.md
@@ -49,10 +49,10 @@ Bool = auth.sendInvites({phone_numbers={'string'}, message='string', })
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_EMPTY|The provided message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_EMPTY|The provided message is empty|
diff --git a/old_docs/API_docs_v75/methods/auth_signIn.md b/old_docs/API_docs_v75/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v75/methods/auth_signIn.md
+++ b/old_docs/API_docs_v75/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v75/methods/auth_signUp.md b/old_docs/API_docs_v75/methods/auth_signUp.md
index 15960145..31154486 100644
--- a/old_docs/API_docs_v75/methods/auth_signUp.md
+++ b/old_docs/API_docs_v75/methods/auth_signUp.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', phone_code='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v75/methods/bots_answerWebhookJSONQuery.md b/old_docs/API_docs_v75/methods/bots_answerWebhookJSONQuery.md
index ae0fa6d9..f2233514 100644
--- a/old_docs/API_docs_v75/methods/bots_answerWebhookJSONQuery.md
+++ b/old_docs/API_docs_v75/methods/bots_answerWebhookJSONQuery.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = bots.answerWebhookJSONQuery({query_id=long, data=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v75/methods/bots_sendCustomRequest.md b/old_docs/API_docs_v75/methods/bots_sendCustomRequest.md
index c1fd8183..8a6a2df5 100644
--- a/old_docs/API_docs_v75/methods/bots_sendCustomRequest.md
+++ b/old_docs/API_docs_v75/methods/bots_sendCustomRequest.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
DataJSON = bots.sendCustomRequest({custom_method='string', params=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v75/methods/channels_checkUsername.md b/old_docs/API_docs_v75/methods/channels_checkUsername.md
index 483a2f6f..52365d34 100644
--- a/old_docs/API_docs_v75/methods/channels_checkUsername.md
+++ b/old_docs/API_docs_v75/methods/channels_checkUsername.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Bool = channels.checkUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v75/methods/channels_createChannel.md b/old_docs/API_docs_v75/methods/channels_createChannel.md
index b924e6a6..ecaee0ef 100644
--- a/old_docs/API_docs_v75/methods/channels_createChannel.md
+++ b/old_docs/API_docs_v75/methods/channels_createChannel.md
@@ -45,12 +45,12 @@ Or, if you're into Lua:
Updates = channels.createChannel({broadcast=Bool, megagroup=Bool, title='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_TITLE_EMPTY|No chat title provided|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
+|406|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v75/methods/channels_deleteChannel.md b/old_docs/API_docs_v75/methods/channels_deleteChannel.md
index 53a9c23d..1b8d2d48 100644
--- a/old_docs/API_docs_v75/methods/channels_deleteChannel.md
+++ b/old_docs/API_docs_v75/methods/channels_deleteChannel.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Updates = channels.deleteChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v75/methods/channels_deleteMessages.md b/old_docs/API_docs_v75/methods/channels_deleteMessages.md
index f76a9ad1..463ebad0 100644
--- a/old_docs/API_docs_v75/methods/channels_deleteMessages.md
+++ b/old_docs/API_docs_v75/methods/channels_deleteMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_AffectedMessages = channels.deleteMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v75/methods/channels_deleteUserHistory.md b/old_docs/API_docs_v75/methods/channels_deleteUserHistory.md
index 0a4e7d82..33905a7e 100644
--- a/old_docs/API_docs_v75/methods/channels_deleteUserHistory.md
+++ b/old_docs/API_docs_v75/methods/channels_deleteUserHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedHistory = channels.deleteUserHistory({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v75/methods/channels_editAbout.md b/old_docs/API_docs_v75/methods/channels_editAbout.md
index 47111668..d5e090e0 100644
--- a/old_docs/API_docs_v75/methods/channels_editAbout.md
+++ b/old_docs/API_docs_v75/methods/channels_editAbout.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Bool = channels.editAbout({channel=InputChannel, about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
-|CHAT_ABOUT_TOO_LONG|Chat about too long|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
+|400|CHAT_ABOUT_TOO_LONG|Chat about too long|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v75/methods/channels_editAdmin.md b/old_docs/API_docs_v75/methods/channels_editAdmin.md
index 43858599..edb7cf55 100644
--- a/old_docs/API_docs_v75/methods/channels_editAdmin.md
+++ b/old_docs/API_docs_v75/methods/channels_editAdmin.md
@@ -44,19 +44,19 @@ Or, if you're into Lua:
Updates = channels.editAdmin({channel=InputChannel, user_id=InputUser, admin_rights=ChannelAdminRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ADMINS_TOO_MUCH|There are too many admins|
-|BOT_CHANNELS_NA|Bots can't edit admin privileges|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
-|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ADMINS_TOO_MUCH|There are too many admins|
+|400|BOT_CHANNELS_NA|Bots can't edit admin privileges|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
+|403|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v75/methods/channels_editBanned.md b/old_docs/API_docs_v75/methods/channels_editBanned.md
index cffb653e..1fd5f597 100644
--- a/old_docs/API_docs_v75/methods/channels_editBanned.md
+++ b/old_docs/API_docs_v75/methods/channels_editBanned.md
@@ -44,14 +44,14 @@ Or, if you're into Lua:
Updates = channels.editBanned({channel=InputChannel, user_id=InputUser, banned_rights=ChannelBannedRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ADMIN_INVALID|You're not an admin|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ADMIN_INVALID|You're not an admin|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v75/methods/channels_editPhoto.md b/old_docs/API_docs_v75/methods/channels_editPhoto.md
index bec0ba48..caef32d5 100644
--- a/old_docs/API_docs_v75/methods/channels_editPhoto.md
+++ b/old_docs/API_docs_v75/methods/channels_editPhoto.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editPhoto({channel=InputChannel, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|PHOTO_INVALID|Photo invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|PHOTO_INVALID|Photo invalid|
diff --git a/old_docs/API_docs_v75/methods/channels_editTitle.md b/old_docs/API_docs_v75/methods/channels_editTitle.md
index b5efeb39..d7cb33da 100644
--- a/old_docs/API_docs_v75/methods/channels_editTitle.md
+++ b/old_docs/API_docs_v75/methods/channels_editTitle.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editTitle({channel=InputChannel, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v75/methods/channels_exportInvite.md b/old_docs/API_docs_v75/methods/channels_exportInvite.md
index 0918b3e7..9d578deb 100644
--- a/old_docs/API_docs_v75/methods/channels_exportInvite.md
+++ b/old_docs/API_docs_v75/methods/channels_exportInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ExportedChatInvite = channels.exportInvite({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INVITE_HASH_EXPIRED|The invite link has expired|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
diff --git a/old_docs/API_docs_v75/methods/channels_exportMessageLink.md b/old_docs/API_docs_v75/methods/channels_exportMessageLink.md
index 5dea54a7..fc2f248b 100644
--- a/old_docs/API_docs_v75/methods/channels_exportMessageLink.md
+++ b/old_docs/API_docs_v75/methods/channels_exportMessageLink.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
ExportedMessageLink = channels.exportMessageLink({channel=InputChannel, id=int, grouped=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v75/methods/channels_getAdminLog.md b/old_docs/API_docs_v75/methods/channels_getAdminLog.md
index 377c7320..adb87748 100644
--- a/old_docs/API_docs_v75/methods/channels_getAdminLog.md
+++ b/old_docs/API_docs_v75/methods/channels_getAdminLog.md
@@ -48,12 +48,12 @@ Or, if you're into Lua:
channels_AdminLogResults = channels.getAdminLog({channel=InputChannel, q='string', events_filter=ChannelAdminLogEventsFilter, admins={InputUser}, max_id=long, min_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v75/methods/channels_getChannels.md b/old_docs/API_docs_v75/methods/channels_getChannels.md
index 78d50641..95d7a188 100644
--- a/old_docs/API_docs_v75/methods/channels_getChannels.md
+++ b/old_docs/API_docs_v75/methods/channels_getChannels.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = channels.getChannels({id={InputChannel}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v75/methods/channels_getFullChannel.md b/old_docs/API_docs_v75/methods/channels_getFullChannel.md
index 45a8ec72..ebd53de4 100644
--- a/old_docs/API_docs_v75/methods/channels_getFullChannel.md
+++ b/old_docs/API_docs_v75/methods/channels_getFullChannel.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->channels->getFullChannel(['channel' => InputChannel, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = channels.getFullChannel({channel=InputChannel, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v75/methods/channels_getMessages.md b/old_docs/API_docs_v75/methods/channels_getMessages.md
index 90cf5a47..f1ae0a4d 100644
--- a/old_docs/API_docs_v75/methods/channels_getMessages.md
+++ b/old_docs/API_docs_v75/methods/channels_getMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_Messages = channels.getMessages({channel=InputChannel, id={InputMessage}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
diff --git a/old_docs/API_docs_v75/methods/channels_getParticipant.md b/old_docs/API_docs_v75/methods/channels_getParticipant.md
index 6633114f..808156fd 100644
--- a/old_docs/API_docs_v75/methods/channels_getParticipant.md
+++ b/old_docs/API_docs_v75/methods/channels_getParticipant.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
channels_ChannelParticipant = channels.getParticipant({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v75/methods/channels_getParticipants.md b/old_docs/API_docs_v75/methods/channels_getParticipants.md
index 5ff242e6..fb7a39df 100644
--- a/old_docs/API_docs_v75/methods/channels_getParticipants.md
+++ b/old_docs/API_docs_v75/methods/channels_getParticipants.md
@@ -46,14 +46,14 @@ Or, if you're into Lua:
channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, filter=ChannelParticipantsFilter, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v75/methods/channels_inviteToChannel.md b/old_docs/API_docs_v75/methods/channels_inviteToChannel.md
index f7093f13..d8c5e88a 100644
--- a/old_docs/API_docs_v75/methods/channels_inviteToChannel.md
+++ b/old_docs/API_docs_v75/methods/channels_inviteToChannel.md
@@ -43,25 +43,25 @@ Or, if you're into Lua:
Updates = channels.inviteToChannel({channel=InputChannel, users={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
-|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_BLOCKED|User blocked|
-|USER_BOT|Bots can only be admins in channels.|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_KICKED|This user was kicked from this supergroup/channel|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
+|400|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_BLOCKED|User blocked|
+|400|USER_BOT|Bots can only be admins in channels.|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_KICKED|This user was kicked from this supergroup/channel|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v75/methods/channels_joinChannel.md b/old_docs/API_docs_v75/methods/channels_joinChannel.md
index b056031a..a4a7c177 100644
--- a/old_docs/API_docs_v75/methods/channels_joinChannel.md
+++ b/old_docs/API_docs_v75/methods/channels_joinChannel.md
@@ -42,15 +42,15 @@ Or, if you're into Lua:
Updates = channels.joinChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
diff --git a/old_docs/API_docs_v75/methods/channels_leaveChannel.md b/old_docs/API_docs_v75/methods/channels_leaveChannel.md
index fdea13ba..6538d443 100644
--- a/old_docs/API_docs_v75/methods/channels_leaveChannel.md
+++ b/old_docs/API_docs_v75/methods/channels_leaveChannel.md
@@ -42,14 +42,14 @@ Or, if you're into Lua:
Updates = channels.leaveChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
-|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
diff --git a/old_docs/API_docs_v75/methods/channels_readHistory.md b/old_docs/API_docs_v75/methods/channels_readHistory.md
index 93dc075f..3532dae0 100644
--- a/old_docs/API_docs_v75/methods/channels_readHistory.md
+++ b/old_docs/API_docs_v75/methods/channels_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readHistory({channel=InputChannel, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v75/methods/channels_readMessageContents.md b/old_docs/API_docs_v75/methods/channels_readMessageContents.md
index 80ddf2b0..8cd8c620 100644
--- a/old_docs/API_docs_v75/methods/channels_readMessageContents.md
+++ b/old_docs/API_docs_v75/methods/channels_readMessageContents.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readMessageContents({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v75/methods/channels_reportSpam.md b/old_docs/API_docs_v75/methods/channels_reportSpam.md
index db80676a..7e273cc5 100644
--- a/old_docs/API_docs_v75/methods/channels_reportSpam.md
+++ b/old_docs/API_docs_v75/methods/channels_reportSpam.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
Bool = channels.reportSpam({channel=InputChannel, user_id=InputUser, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
diff --git a/old_docs/API_docs_v75/methods/channels_setStickers.md b/old_docs/API_docs_v75/methods/channels_setStickers.md
index 10cd68bf..c9b95527 100644
--- a/old_docs/API_docs_v75/methods/channels_setStickers.md
+++ b/old_docs/API_docs_v75/methods/channels_setStickers.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.setStickers({channel=InputChannel, stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PARTICIPANTS_TOO_FEW|Not enough participants|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PARTICIPANTS_TOO_FEW|Not enough participants|
diff --git a/old_docs/API_docs_v75/methods/channels_toggleInvites.md b/old_docs/API_docs_v75/methods/channels_toggleInvites.md
index e5d3fba1..6266d30b 100644
--- a/old_docs/API_docs_v75/methods/channels_toggleInvites.md
+++ b/old_docs/API_docs_v75/methods/channels_toggleInvites.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.toggleInvites({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v75/methods/channels_toggleSignatures.md b/old_docs/API_docs_v75/methods/channels_toggleSignatures.md
index cdfc0fda..f8624946 100644
--- a/old_docs/API_docs_v75/methods/channels_toggleSignatures.md
+++ b/old_docs/API_docs_v75/methods/channels_toggleSignatures.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = channels.toggleSignatures({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v75/methods/channels_updatePinnedMessage.md b/old_docs/API_docs_v75/methods/channels_updatePinnedMessage.md
index 53733a22..37d7c3c0 100644
--- a/old_docs/API_docs_v75/methods/channels_updatePinnedMessage.md
+++ b/old_docs/API_docs_v75/methods/channels_updatePinnedMessage.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = channels.updatePinnedMessage({silent=Bool, channel=InputChannel, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v75/methods/channels_updateUsername.md b/old_docs/API_docs_v75/methods/channels_updateUsername.md
index 677712f9..48d250e6 100644
--- a/old_docs/API_docs_v75/methods/channels_updateUsername.md
+++ b/old_docs/API_docs_v75/methods/channels_updateUsername.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Bool = channels.updateUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_OCCUPIED|The provided username is already occupied|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
diff --git a/old_docs/API_docs_v75/methods/contacts_block.md b/old_docs/API_docs_v75/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v75/methods/contacts_block.md
+++ b/old_docs/API_docs_v75/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v75/methods/contacts_deleteContact.md b/old_docs/API_docs_v75/methods/contacts_deleteContact.md
index ba9569e4..a9321d64 100644
--- a/old_docs/API_docs_v75/methods/contacts_deleteContact.md
+++ b/old_docs/API_docs_v75/methods/contacts_deleteContact.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
contacts_Link = contacts.deleteContact({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v75/methods/contacts_deleteContacts.md b/old_docs/API_docs_v75/methods/contacts_deleteContacts.md
index bfc91fdd..3c8e90f0 100644
--- a/old_docs/API_docs_v75/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v75/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v75/methods/contacts_getStatuses.md b/old_docs/API_docs_v75/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v75/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v75/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v75/methods/contacts_getTopPeers.md b/old_docs/API_docs_v75/methods/contacts_getTopPeers.md
index 4dc13d08..9ad9ab01 100644
--- a/old_docs/API_docs_v75/methods/contacts_getTopPeers.md
+++ b/old_docs/API_docs_v75/methods/contacts_getTopPeers.md
@@ -50,10 +50,10 @@ Or, if you're into Lua:
contacts_TopPeers = contacts.getTopPeers({correspondents=Bool, bots_pm=Bool, bots_inline=Bool, phone_calls=Bool, groups=Bool, channels=Bool, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TYPES_EMPTY|No top peer type was provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TYPES_EMPTY|No top peer type was provided|
diff --git a/old_docs/API_docs_v75/methods/contacts_importCard.md b/old_docs/API_docs_v75/methods/contacts_importCard.md
index 15addde1..ed3d17fe 100644
--- a/old_docs/API_docs_v75/methods/contacts_importCard.md
+++ b/old_docs/API_docs_v75/methods/contacts_importCard.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
User = contacts.importCard({export_card={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|EXPORT_CARD_INVALID|Provided card is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EXPORT_CARD_INVALID|Provided card is invalid|
diff --git a/old_docs/API_docs_v75/methods/contacts_resetTopPeerRating.md b/old_docs/API_docs_v75/methods/contacts_resetTopPeerRating.md
index 43cf1685..787be177 100644
--- a/old_docs/API_docs_v75/methods/contacts_resetTopPeerRating.md
+++ b/old_docs/API_docs_v75/methods/contacts_resetTopPeerRating.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = contacts.resetTopPeerRating({category=TopPeerCategory, peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v75/methods/contacts_resolveUsername.md b/old_docs/API_docs_v75/methods/contacts_resolveUsername.md
index fab56bb1..68f709db 100644
--- a/old_docs/API_docs_v75/methods/contacts_resolveUsername.md
+++ b/old_docs/API_docs_v75/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [contacts\_ResolvedPeer](../types/contacts_ResolvedPeer.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$contacts_ResolvedPeer = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+contacts_ResolvedPeer = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v75/methods/contacts_search.md b/old_docs/API_docs_v75/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v75/methods/contacts_search.md
+++ b/old_docs/API_docs_v75/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v75/methods/contacts_unblock.md b/old_docs/API_docs_v75/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v75/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v75/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v75/methods/help_getCdnConfig.md b/old_docs/API_docs_v75/methods/help_getCdnConfig.md
index 9e047a1d..ba526365 100644
--- a/old_docs/API_docs_v75/methods/help_getCdnConfig.md
+++ b/old_docs/API_docs_v75/methods/help_getCdnConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
CdnConfig = help.getCdnConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v75/methods/help_getConfig.md b/old_docs/API_docs_v75/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v75/methods/help_getConfig.md
+++ b/old_docs/API_docs_v75/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v75/methods/initConnection.md b/old_docs/API_docs_v75/methods/initConnection.md
index 05ba27af..49e2b675 100644
--- a/old_docs/API_docs_v75/methods/initConnection.md
+++ b/old_docs/API_docs_v75/methods/initConnection.md
@@ -49,11 +49,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', system_lang_code='string', lang_pack='string', lang_code='string', query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v75/methods/invokeWithLayer.md b/old_docs/API_docs_v75/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/old_docs/API_docs_v75/methods/invokeWithLayer.md
+++ b/old_docs/API_docs_v75/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v75/methods/langpack_getDifference.md b/old_docs/API_docs_v75/methods/langpack_getDifference.md
index ed7e4028..70295776 100644
--- a/old_docs/API_docs_v75/methods/langpack_getDifference.md
+++ b/old_docs/API_docs_v75/methods/langpack_getDifference.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getDifference({from_version=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v75/methods/langpack_getLangPack.md b/old_docs/API_docs_v75/methods/langpack_getLangPack.md
index 50684fef..de6ab2ab 100644
--- a/old_docs/API_docs_v75/methods/langpack_getLangPack.md
+++ b/old_docs/API_docs_v75/methods/langpack_getLangPack.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getLangPack({lang_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v75/methods/langpack_getLanguages.md b/old_docs/API_docs_v75/methods/langpack_getLanguages.md
index 7ffc0f3b..0b09a845 100644
--- a/old_docs/API_docs_v75/methods/langpack_getLanguages.md
+++ b/old_docs/API_docs_v75/methods/langpack_getLanguages.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_LangPackLanguage = langpack.getLanguages({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v75/methods/langpack_getStrings.md b/old_docs/API_docs_v75/methods/langpack_getStrings.md
index 1101ec91..3276120f 100644
--- a/old_docs/API_docs_v75/methods/langpack_getStrings.md
+++ b/old_docs/API_docs_v75/methods/langpack_getStrings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Vector_of_LangPackString = langpack.getStrings({lang_code='string', keys={'string'}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_acceptEncryption.md b/old_docs/API_docs_v75/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v75/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v75/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v75/methods/messages_addChatUser.md b/old_docs/API_docs_v75/methods/messages_addChatUser.md
index bc0d6253..b5e164b2 100644
--- a/old_docs/API_docs_v75/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v75/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
Updates = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v75/methods/messages_checkChatInvite.md b/old_docs/API_docs_v75/methods/messages_checkChatInvite.md
index de28b09b..0d13d55e 100644
--- a/old_docs/API_docs_v75/methods/messages_checkChatInvite.md
+++ b/old_docs/API_docs_v75/methods/messages_checkChatInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ChatInvite = messages.checkChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_createChat.md b/old_docs/API_docs_v75/methods/messages_createChat.md
index 8f6e9672..b2623f1d 100644
--- a/old_docs/API_docs_v75/methods/messages_createChat.md
+++ b/old_docs/API_docs_v75/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v75/methods/messages_deleteChatUser.md b/old_docs/API_docs_v75/methods/messages_deleteChatUser.md
index 63529571..11b9b220 100644
--- a/old_docs/API_docs_v75/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v75/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v75/methods/messages_deleteHistory.md b/old_docs/API_docs_v75/methods/messages_deleteHistory.md
index 2ade177e..338c2cdf 100644
--- a/old_docs/API_docs_v75/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v75/methods/messages_deleteHistory.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({just_clear=Bool, peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_deleteMessages.md b/old_docs/API_docs_v75/methods/messages_deleteMessages.md
index 4c65080a..41517dd0 100644
--- a/old_docs/API_docs_v75/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v75/methods/messages_deleteMessages.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.deleteMessages({revoke=Bool, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v75/methods/messages_discardEncryption.md b/old_docs/API_docs_v75/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v75/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v75/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_editChatAdmin.md b/old_docs/API_docs_v75/methods/messages_editChatAdmin.md
index 2b4dc94c..6f6c1376 100644
--- a/old_docs/API_docs_v75/methods/messages_editChatAdmin.md
+++ b/old_docs/API_docs_v75/methods/messages_editChatAdmin.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.editChatAdmin({chat_id=InputPeer, user_id=InputUser, is_admin=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_editChatPhoto.md b/old_docs/API_docs_v75/methods/messages_editChatPhoto.md
index 2a82c232..a21a03b9 100644
--- a/old_docs/API_docs_v75/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v75/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Updates = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_editChatTitle.md b/old_docs/API_docs_v75/methods/messages_editChatTitle.md
index 2c338ad6..72f78741 100644
--- a/old_docs/API_docs_v75/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v75/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v75/methods/messages_editInlineBotMessage.md b/old_docs/API_docs_v75/methods/messages_editInlineBotMessage.md
index b6269ae8..aebd3a65 100644
--- a/old_docs/API_docs_v75/methods/messages_editInlineBotMessage.md
+++ b/old_docs/API_docs_v75/methods/messages_editInlineBotMessage.md
@@ -97,11 +97,11 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
diff --git a/old_docs/API_docs_v75/methods/messages_editMessage.md b/old_docs/API_docs_v75/methods/messages_editMessage.md
index b286c713..a594ece1 100644
--- a/old_docs/API_docs_v75/methods/messages_editMessage.md
+++ b/old_docs/API_docs_v75/methods/messages_editMessage.md
@@ -98,20 +98,20 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v75/methods/messages_exportChatInvite.md b/old_docs/API_docs_v75/methods/messages_exportChatInvite.md
index f3449e79..bc6272e4 100644
--- a/old_docs/API_docs_v75/methods/messages_exportChatInvite.md
+++ b/old_docs/API_docs_v75/methods/messages_exportChatInvite.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
ExportedChatInvite = messages.exportChatInvite({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_faveSticker.md b/old_docs/API_docs_v75/methods/messages_faveSticker.md
index a8b1ab56..9f9f423d 100644
--- a/old_docs/API_docs_v75/methods/messages_faveSticker.md
+++ b/old_docs/API_docs_v75/methods/messages_faveSticker.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.faveSticker({id=InputDocument, unfave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_forwardMessages.md b/old_docs/API_docs_v75/methods/messages_forwardMessages.md
index d2453d05..743fa7a6 100644
--- a/old_docs/API_docs_v75/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v75/methods/messages_forwardMessages.md
@@ -48,29 +48,29 @@ Or, if you're into Lua:
Updates = messages.forwardMessages({silent=Bool, background=Bool, with_my_score=Bool, grouped=Bool, from_peer=InputPeer, id={int}, to_peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v75/methods/messages_getBotCallbackAnswer.md b/old_docs/API_docs_v75/methods/messages_getBotCallbackAnswer.md
index f97fa5b0..3f8cc23b 100644
--- a/old_docs/API_docs_v75/methods/messages_getBotCallbackAnswer.md
+++ b/old_docs/API_docs_v75/methods/messages_getBotCallbackAnswer.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
messages_BotCallbackAnswer = messages.getBotCallbackAnswer({game=Bool, peer=InputPeer, msg_id=int, data='bytes', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v75/methods/messages_getChats.md b/old_docs/API_docs_v75/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/old_docs/API_docs_v75/methods/messages_getChats.md
+++ b/old_docs/API_docs_v75/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_getCommonChats.md b/old_docs/API_docs_v75/methods/messages_getCommonChats.md
index 9470a0ee..cff23c3f 100644
--- a/old_docs/API_docs_v75/methods/messages_getCommonChats.md
+++ b/old_docs/API_docs_v75/methods/messages_getCommonChats.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_Chats = messages.getCommonChats({user_id=InputUser, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_getDhConfig.md b/old_docs/API_docs_v75/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v75/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v75/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_getDialogs.md b/old_docs/API_docs_v75/methods/messages_getDialogs.md
index 28590399..e95ea75b 100644
--- a/old_docs/API_docs_v75/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v75/methods/messages_getDialogs.md
@@ -46,13 +46,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({exclude_pinned=Bool, offset_date=int, offset_id=int, offset_peer=InputPeer, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v75/methods/messages_getDocumentByHash.md b/old_docs/API_docs_v75/methods/messages_getDocumentByHash.md
index 73a235d5..06469c52 100644
--- a/old_docs/API_docs_v75/methods/messages_getDocumentByHash.md
+++ b/old_docs/API_docs_v75/methods/messages_getDocumentByHash.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Document = messages.getDocumentByHash({sha256='bytes', size=int, mime_type='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_getFullChat.md b/old_docs/API_docs_v75/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v75/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v75/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_getGameHighScores.md b/old_docs/API_docs_v75/methods/messages_getGameHighScores.md
index 249e1d09..5c484bbb 100644
--- a/old_docs/API_docs_v75/methods/messages_getGameHighScores.md
+++ b/old_docs/API_docs_v75/methods/messages_getGameHighScores.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
messages_HighScores = messages.getGameHighScores({peer=InputPeer, id=int, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v75/methods/messages_getHistory.md b/old_docs/API_docs_v75/methods/messages_getHistory.md
index d623a61e..a0389d7b 100644
--- a/old_docs/API_docs_v75/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v75/methods/messages_getHistory.md
@@ -49,16 +49,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset_id=int, offset_date=int, add_offset=int, limit=int, max_id=int, min_id=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v75/methods/messages_getInlineBotResults.md b/old_docs/API_docs_v75/methods/messages_getInlineBotResults.md
index 1efcb412..17d678b7 100644
--- a/old_docs/API_docs_v75/methods/messages_getInlineBotResults.md
+++ b/old_docs/API_docs_v75/methods/messages_getInlineBotResults.md
@@ -46,13 +46,13 @@ Or, if you're into Lua:
messages_BotResults = messages.getInlineBotResults({bot=InputUser, peer=InputPeer, geo_point=InputGeoPoint, query='string', offset='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
-|BOT_INVALID|This is not a valid bot|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
+|400|BOT_INVALID|This is not a valid bot|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v75/methods/messages_getInlineGameHighScores.md b/old_docs/API_docs_v75/methods/messages_getInlineGameHighScores.md
index e68c6db8..ac33b6b8 100644
--- a/old_docs/API_docs_v75/methods/messages_getInlineGameHighScores.md
+++ b/old_docs/API_docs_v75/methods/messages_getInlineGameHighScores.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_HighScores = messages.getInlineGameHighScores({id=InputBotInlineMessageID, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v75/methods/messages_getMessageEditData.md b/old_docs/API_docs_v75/methods/messages_getMessageEditData.md
index 7f1b7164..b907d78c 100644
--- a/old_docs/API_docs_v75/methods/messages_getMessageEditData.md
+++ b/old_docs/API_docs_v75/methods/messages_getMessageEditData.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_MessageEditData = messages.getMessageEditData({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v75/methods/messages_getMessagesViews.md b/old_docs/API_docs_v75/methods/messages_getMessagesViews.md
index 3d490315..143e568c 100644
--- a/old_docs/API_docs_v75/methods/messages_getMessagesViews.md
+++ b/old_docs/API_docs_v75/methods/messages_getMessagesViews.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
Vector_of_int = messages.getMessagesViews({peer=InputPeer, id={int}, increment=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_getPeerDialogs.md b/old_docs/API_docs_v75/methods/messages_getPeerDialogs.md
index 6811001a..0c770183 100644
--- a/old_docs/API_docs_v75/methods/messages_getPeerDialogs.md
+++ b/old_docs/API_docs_v75/methods/messages_getPeerDialogs.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPeerDialogs({peers={InputPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_getPeerSettings.md b/old_docs/API_docs_v75/methods/messages_getPeerSettings.md
index 26dafb9b..69032ff5 100644
--- a/old_docs/API_docs_v75/methods/messages_getPeerSettings.md
+++ b/old_docs/API_docs_v75/methods/messages_getPeerSettings.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
PeerSettings = messages.getPeerSettings({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_getPinnedDialogs.md b/old_docs/API_docs_v75/methods/messages_getPinnedDialogs.md
index 828d622e..f106098d 100644
--- a/old_docs/API_docs_v75/methods/messages_getPinnedDialogs.md
+++ b/old_docs/API_docs_v75/methods/messages_getPinnedDialogs.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPinnedDialogs({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FOLDER_ID_INVALID|Invalid folder ID|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FOLDER_ID_INVALID|Invalid folder ID|
diff --git a/old_docs/API_docs_v75/methods/messages_getStickerSet.md b/old_docs/API_docs_v75/methods/messages_getStickerSet.md
index 57bce84d..487316cc 100644
--- a/old_docs/API_docs_v75/methods/messages_getStickerSet.md
+++ b/old_docs/API_docs_v75/methods/messages_getStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_StickerSet = messages.getStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_getUnreadMentions.md b/old_docs/API_docs_v75/methods/messages_getUnreadMentions.md
index 1fa1f269..923229eb 100644
--- a/old_docs/API_docs_v75/methods/messages_getUnreadMentions.md
+++ b/old_docs/API_docs_v75/methods/messages_getUnreadMentions.md
@@ -47,10 +47,10 @@ Or, if you're into Lua:
messages_Messages = messages.getUnreadMentions({peer=InputPeer, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_getWebPage.md b/old_docs/API_docs_v75/methods/messages_getWebPage.md
index ce51ff41..63ef5e93 100644
--- a/old_docs/API_docs_v75/methods/messages_getWebPage.md
+++ b/old_docs/API_docs_v75/methods/messages_getWebPage.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
WebPage = messages.getWebPage({url='string', hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|WC_CONVERT_URL_INVALID|WC convert URL invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|WC_CONVERT_URL_INVALID|WC convert URL invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_hideReportSpam.md b/old_docs/API_docs_v75/methods/messages_hideReportSpam.md
index c4bf7399..57756d2e 100644
--- a/old_docs/API_docs_v75/methods/messages_hideReportSpam.md
+++ b/old_docs/API_docs_v75/methods/messages_hideReportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.hideReportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_importChatInvite.md b/old_docs/API_docs_v75/methods/messages_importChatInvite.md
index 12120867..101b4b19 100644
--- a/old_docs/API_docs_v75/methods/messages_importChatInvite.md
+++ b/old_docs/API_docs_v75/methods/messages_importChatInvite.md
@@ -42,16 +42,16 @@ Or, if you're into Lua:
Updates = messages.importChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v75/methods/messages_installStickerSet.md b/old_docs/API_docs_v75/methods/messages_installStickerSet.md
index 21a57a85..67f2aca0 100644
--- a/old_docs/API_docs_v75/methods/messages_installStickerSet.md
+++ b/old_docs/API_docs_v75/methods/messages_installStickerSet.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_StickerSetInstallResult = messages.installStickerSet({stickerset=InputStickerSet, archived=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_migrateChat.md b/old_docs/API_docs_v75/methods/messages_migrateChat.md
index a72f4c11..ee4010eb 100644
--- a/old_docs/API_docs_v75/methods/messages_migrateChat.md
+++ b/old_docs/API_docs_v75/methods/messages_migrateChat.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
Updates = messages.migrateChat({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v75/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v75/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v75/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v75/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v75/methods/messages_readHistory.md b/old_docs/API_docs_v75/methods/messages_readHistory.md
index 2ad5cd09..a7f0eca7 100644
--- a/old_docs/API_docs_v75/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v75/methods/messages_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.readHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v75/methods/messages_receivedQueue.md b/old_docs/API_docs_v75/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v75/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v75/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v75/methods/messages_reorderPinnedDialogs.md b/old_docs/API_docs_v75/methods/messages_reorderPinnedDialogs.md
index d6759a55..d89bf27a 100644
--- a/old_docs/API_docs_v75/methods/messages_reorderPinnedDialogs.md
+++ b/old_docs/API_docs_v75/methods/messages_reorderPinnedDialogs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.reorderPinnedDialogs({force=Bool, order={InputPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_reportEncryptedSpam.md b/old_docs/API_docs_v75/methods/messages_reportEncryptedSpam.md
index 9b1e868b..aeac27ef 100644
--- a/old_docs/API_docs_v75/methods/messages_reportEncryptedSpam.md
+++ b/old_docs/API_docs_v75/methods/messages_reportEncryptedSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportEncryptedSpam({peer=InputEncryptedChat, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_reportSpam.md b/old_docs/API_docs_v75/methods/messages_reportSpam.md
index e92fba13..dc256e55 100644
--- a/old_docs/API_docs_v75/methods/messages_reportSpam.md
+++ b/old_docs/API_docs_v75/methods/messages_reportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_requestEncryption.md b/old_docs/API_docs_v75/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v75/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v75/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_saveDraft.md b/old_docs/API_docs_v75/methods/messages_saveDraft.md
index 791ce234..ea6d407e 100644
--- a/old_docs/API_docs_v75/methods/messages_saveDraft.md
+++ b/old_docs/API_docs_v75/methods/messages_saveDraft.md
@@ -89,10 +89,10 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_saveGif.md b/old_docs/API_docs_v75/methods/messages_saveGif.md
index f504ff9e..010e17ec 100644
--- a/old_docs/API_docs_v75/methods/messages_saveGif.md
+++ b/old_docs/API_docs_v75/methods/messages_saveGif.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.saveGif({id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|GIF_ID_INVALID|The provided GIF ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|GIF_ID_INVALID|The provided GIF ID is invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_saveRecentSticker.md b/old_docs/API_docs_v75/methods/messages_saveRecentSticker.md
index 98c74efd..072b6fe9 100644
--- a/old_docs/API_docs_v75/methods/messages_saveRecentSticker.md
+++ b/old_docs/API_docs_v75/methods/messages_saveRecentSticker.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.saveRecentSticker({attached=Bool, id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_search.md b/old_docs/API_docs_v75/methods/messages_search.md
index 7b95c3cf..a0a88452 100644
--- a/old_docs/API_docs_v75/methods/messages_search.md
+++ b/old_docs/API_docs_v75/methods/messages_search.md
@@ -52,16 +52,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({peer=InputPeer, q='string', from_id=InputUser, filter=MessagesFilter, min_date=int, max_date=int, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_searchGifs.md b/old_docs/API_docs_v75/methods/messages_searchGifs.md
index 7be4173b..1602d35e 100644
--- a/old_docs/API_docs_v75/methods/messages_searchGifs.md
+++ b/old_docs/API_docs_v75/methods/messages_searchGifs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_FoundGifs = messages.searchGifs({q='string', offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v75/methods/messages_searchGlobal.md b/old_docs/API_docs_v75/methods/messages_searchGlobal.md
index fb38398b..c8da163c 100644
--- a/old_docs/API_docs_v75/methods/messages_searchGlobal.md
+++ b/old_docs/API_docs_v75/methods/messages_searchGlobal.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
messages_Messages = messages.searchGlobal({q='string', offset_date=int, offset_peer=InputPeer, offset_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v75/methods/messages_sendEncrypted.md b/old_docs/API_docs_v75/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v75/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v75/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v75/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v75/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v75/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v75/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v75/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v75/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v75/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v75/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v75/methods/messages_sendInlineBotResult.md b/old_docs/API_docs_v75/methods/messages_sendInlineBotResult.md
index 9ffa02ae..a2b57f4d 100644
--- a/old_docs/API_docs_v75/methods/messages_sendInlineBotResult.md
+++ b/old_docs/API_docs_v75/methods/messages_sendInlineBotResult.md
@@ -48,15 +48,15 @@ Or, if you're into Lua:
Updates = messages.sendInlineBotResult({silent=Bool, background=Bool, clear_draft=Bool, peer=InputPeer, reply_to_msg_id=int, query_id=long, id='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INLINE_RESULT_EXPIRED|The inline query expired|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|QUERY_ID_EMPTY|The query ID is empty|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INLINE_RESULT_EXPIRED|The inline query expired|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|QUERY_ID_EMPTY|The query ID is empty|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v75/methods/messages_sendMedia.md b/old_docs/API_docs_v75/methods/messages_sendMedia.md
index 44c604c6..a2244583 100644
--- a/old_docs/API_docs_v75/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v75/methods/messages_sendMedia.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v75/methods/messages_sendMessage.md b/old_docs/API_docs_v75/methods/messages_sendMessage.md
index 5641ebc3..e0ab305d 100644
--- a/old_docs/API_docs_v75/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v75/methods/messages_sendMessage.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v75/methods/messages_sendMultiMedia.md b/old_docs/API_docs_v75/methods/messages_sendMultiMedia.md
index 9ebdcb88..5684a6d2 100644
--- a/old_docs/API_docs_v75/methods/messages_sendMultiMedia.md
+++ b/old_docs/API_docs_v75/methods/messages_sendMultiMedia.md
@@ -47,11 +47,11 @@ Or, if you're into Lua:
Updates = messages.sendMultiMedia({silent=Bool, background=Bool, clear_draft=Bool, peer=InputPeer, reply_to_msg_id=int, multi_media={InputSingleMedia}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_sendScreenshotNotification.md b/old_docs/API_docs_v75/methods/messages_sendScreenshotNotification.md
index 3f5bb36d..4e4e40f5 100644
--- a/old_docs/API_docs_v75/methods/messages_sendScreenshotNotification.md
+++ b/old_docs/API_docs_v75/methods/messages_sendScreenshotNotification.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = messages.sendScreenshotNotification({peer=InputPeer, reply_to_msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_setBotCallbackAnswer.md b/old_docs/API_docs_v75/methods/messages_setBotCallbackAnswer.md
index ed058b4f..630ca61c 100644
--- a/old_docs/API_docs_v75/methods/messages_setBotCallbackAnswer.md
+++ b/old_docs/API_docs_v75/methods/messages_setBotCallbackAnswer.md
@@ -52,11 +52,11 @@ Bool = messages.setBotCallbackAnswer({alert=Bool, query_id=long, message='string
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|URL_INVALID|Invalid URL provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|URL_INVALID|Invalid URL provided|
diff --git a/old_docs/API_docs_v75/methods/messages_setBotPrecheckoutResults.md b/old_docs/API_docs_v75/methods/messages_setBotPrecheckoutResults.md
index cc615123..d6e0e61b 100644
--- a/old_docs/API_docs_v75/methods/messages_setBotPrecheckoutResults.md
+++ b/old_docs/API_docs_v75/methods/messages_setBotPrecheckoutResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotPrecheckoutResults({success=Bool, query_id=long, error='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ERROR_TEXT_EMPTY|The provided error message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ERROR_TEXT_EMPTY|The provided error message is empty|
diff --git a/old_docs/API_docs_v75/methods/messages_setBotShippingResults.md b/old_docs/API_docs_v75/methods/messages_setBotShippingResults.md
index f3a86f4f..adc4f64f 100644
--- a/old_docs/API_docs_v75/methods/messages_setBotShippingResults.md
+++ b/old_docs/API_docs_v75/methods/messages_setBotShippingResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotShippingResults({query_id=long, error='string', shipping_options={ShippingOption}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v75/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v75/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v75/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_setGameScore.md b/old_docs/API_docs_v75/methods/messages_setGameScore.md
index 548ee889..429b04c6 100644
--- a/old_docs/API_docs_v75/methods/messages_setGameScore.md
+++ b/old_docs/API_docs_v75/methods/messages_setGameScore.md
@@ -47,12 +47,12 @@ Or, if you're into Lua:
Updates = messages.setGameScore({edit_message=Bool, force=Bool, peer=InputPeer, id=int, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v75/methods/messages_setInlineBotResults.md b/old_docs/API_docs_v75/methods/messages_setInlineBotResults.md
index ab388e39..df4c30d4 100644
--- a/old_docs/API_docs_v75/methods/messages_setInlineBotResults.md
+++ b/old_docs/API_docs_v75/methods/messages_setInlineBotResults.md
@@ -48,23 +48,23 @@ Or, if you're into Lua:
Bool = messages.setInlineBotResults({gallery=Bool, private=Bool, query_id=long, results={InputBotInlineResult}, cache_time=int, next_offset='string', switch_pm=InlineBotSwitchPM, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ARTICLE_TITLE_EMPTY|The title of the article is empty|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|PHOTO_INVALID|Photo invalid|
-|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
-|QUERY_ID_INVALID|The query ID is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|RESULT_TYPE_INVALID|Result type invalid|
-|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
-|START_PARAM_INVALID|Start parameter invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ARTICLE_TITLE_EMPTY|The title of the article is empty|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|PHOTO_INVALID|Photo invalid|
+|400|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|RESULT_TYPE_INVALID|Result type invalid|
+|400|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
+|400|START_PARAM_INVALID|Start parameter invalid|
+|403|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v75/methods/messages_setInlineGameScore.md b/old_docs/API_docs_v75/methods/messages_setInlineGameScore.md
index 5eeb1540..62b163d5 100644
--- a/old_docs/API_docs_v75/methods/messages_setInlineGameScore.md
+++ b/old_docs/API_docs_v75/methods/messages_setInlineGameScore.md
@@ -46,11 +46,11 @@ Or, if you're into Lua:
Bool = messages.setInlineGameScore({edit_message=Bool, force=Bool, id=InputBotInlineMessageID, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v75/methods/messages_setTyping.md b/old_docs/API_docs_v75/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v75/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v75/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v75/methods/messages_startBot.md b/old_docs/API_docs_v75/methods/messages_startBot.md
index aa2b2d00..4bf12aa6 100644
--- a/old_docs/API_docs_v75/methods/messages_startBot.md
+++ b/old_docs/API_docs_v75/methods/messages_startBot.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = messages.startBot({bot=InputUser, peer=InputPeer, start_param='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INVALID|This is not a valid bot|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|START_PARAM_EMPTY|The start parameter is empty|
-|START_PARAM_INVALID|Start parameter invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INVALID|This is not a valid bot|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|START_PARAM_EMPTY|The start parameter is empty|
+|400|START_PARAM_INVALID|Start parameter invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_toggleChatAdmins.md b/old_docs/API_docs_v75/methods/messages_toggleChatAdmins.md
index 7851806d..8ea6e65e 100644
--- a/old_docs/API_docs_v75/methods/messages_toggleChatAdmins.md
+++ b/old_docs/API_docs_v75/methods/messages_toggleChatAdmins.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.toggleChatAdmins({chat_id=InputPeer, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v75/methods/messages_toggleDialogPin.md b/old_docs/API_docs_v75/methods/messages_toggleDialogPin.md
index 888f9a25..d44e4abc 100644
--- a/old_docs/API_docs_v75/methods/messages_toggleDialogPin.md
+++ b/old_docs/API_docs_v75/methods/messages_toggleDialogPin.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.toggleDialogPin({pinned=Bool, peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_uninstallStickerSet.md b/old_docs/API_docs_v75/methods/messages_uninstallStickerSet.md
index 59abc510..6b7a2006 100644
--- a/old_docs/API_docs_v75/methods/messages_uninstallStickerSet.md
+++ b/old_docs/API_docs_v75/methods/messages_uninstallStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.uninstallStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v75/methods/messages_uploadMedia.md b/old_docs/API_docs_v75/methods/messages_uploadMedia.md
index afc806fe..09fc074c 100644
--- a/old_docs/API_docs_v75/methods/messages_uploadMedia.md
+++ b/old_docs/API_docs_v75/methods/messages_uploadMedia.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
MessageMedia = messages.uploadMedia({peer=InputPeer, media=InputMedia, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v75/methods/payments_getPaymentForm.md b/old_docs/API_docs_v75/methods/payments_getPaymentForm.md
index e8e04f37..4c28121f 100644
--- a/old_docs/API_docs_v75/methods/payments_getPaymentForm.md
+++ b/old_docs/API_docs_v75/methods/payments_getPaymentForm.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentForm = payments.getPaymentForm({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v75/methods/payments_getPaymentReceipt.md b/old_docs/API_docs_v75/methods/payments_getPaymentReceipt.md
index acb1c209..0e2f76a8 100644
--- a/old_docs/API_docs_v75/methods/payments_getPaymentReceipt.md
+++ b/old_docs/API_docs_v75/methods/payments_getPaymentReceipt.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentReceipt = payments.getPaymentReceipt({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v75/methods/payments_sendPaymentForm.md b/old_docs/API_docs_v75/methods/payments_sendPaymentForm.md
index b8fa905d..1910ede8 100644
--- a/old_docs/API_docs_v75/methods/payments_sendPaymentForm.md
+++ b/old_docs/API_docs_v75/methods/payments_sendPaymentForm.md
@@ -45,10 +45,10 @@ Or, if you're into Lua:
payments_PaymentResult = payments.sendPaymentForm({msg_id=int, requested_info_id='string', shipping_option_id='string', credentials=InputPaymentCredentials, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v75/methods/payments_validateRequestedInfo.md b/old_docs/API_docs_v75/methods/payments_validateRequestedInfo.md
index 3b9da7e6..f18e1660 100644
--- a/old_docs/API_docs_v75/methods/payments_validateRequestedInfo.md
+++ b/old_docs/API_docs_v75/methods/payments_validateRequestedInfo.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
payments_ValidatedRequestedInfo = payments.validateRequestedInfo({save=Bool, msg_id=int, info=PaymentRequestedInfo, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v75/methods/phone_acceptCall.md b/old_docs/API_docs_v75/methods/phone_acceptCall.md
index b75ac65b..f5c58f01 100644
--- a/old_docs/API_docs_v75/methods/phone_acceptCall.md
+++ b/old_docs/API_docs_v75/methods/phone_acceptCall.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->acceptCall(['peer' => InputPhoneCall, 'g_b' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.acceptCall({peer=InputPhoneCall, g_b='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
diff --git a/old_docs/API_docs_v75/methods/phone_confirmCall.md b/old_docs/API_docs_v75/methods/phone_confirmCall.md
index 1a75563d..468307cc 100644
--- a/old_docs/API_docs_v75/methods/phone_confirmCall.md
+++ b/old_docs/API_docs_v75/methods/phone_confirmCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->confirmCall(['peer' => InputPhoneCall, 'g_a' => 'bytes', 'key_fingerprint' => long, 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.confirmCall({peer=InputPhoneCall, g_a='bytes', key_fingerprint=long, protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v75/methods/phone_discardCall.md b/old_docs/API_docs_v75/methods/phone_discardCall.md
index e50456eb..ffaa18ea 100644
--- a/old_docs/API_docs_v75/methods/phone_discardCall.md
+++ b/old_docs/API_docs_v75/methods/phone_discardCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|duration|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|reason|[PhoneCallDiscardReason](../types/PhoneCallDiscardReason.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|connection\_id|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [Updates](../types/Updates.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Updates = $MadelineProto->phone->discardCall(['peer' => InputPhoneCall, 'duration' => int, 'reason' => PhoneCallDiscardReason, 'connection_id' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Updates = phone.discardCall({peer=InputPhoneCall, duration=int, reason=PhoneCallDiscardReason, connection_id=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v75/methods/phone_receivedCall.md b/old_docs/API_docs_v75/methods/phone_receivedCall.md
index c43bc8ac..6091424b 100644
--- a/old_docs/API_docs_v75/methods/phone_receivedCall.md
+++ b/old_docs/API_docs_v75/methods/phone_receivedCall.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Bool = phone.receivedCall({peer=InputPhoneCall, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_ALREADY_DECLINED|The call was already declined|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v75/methods/phone_requestCall.md b/old_docs/API_docs_v75/methods/phone_requestCall.md
index 9b8df564..c8e828f2 100644
--- a/old_docs/API_docs_v75/methods/phone_requestCall.md
+++ b/old_docs/API_docs_v75/methods/phone_requestCall.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Optional|
+|g\_a\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->requestCall(['user_id' => InputUser, 'g_a_hash' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.requestCall({user_id=InputUser, g_a_hash='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
+|400|PARTICIPANT_VERSION_OUTDATED|The other participant does not use an up to date telegram client with support for calls|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|403|USER_IS_BLOCKED|You were blocked by this user|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v75/methods/phone_saveCallDebug.md b/old_docs/API_docs_v75/methods/phone_saveCallDebug.md
index 8acbc353..1e793c05 100644
--- a/old_docs/API_docs_v75/methods/phone_saveCallDebug.md
+++ b/old_docs/API_docs_v75/methods/phone_saveCallDebug.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = phone.saveCallDebug({peer=InputPhoneCall, debug=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
-|DATA_JSON_INVALID|The provided JSON data is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|DATA_JSON_INVALID|The provided JSON data is invalid|
diff --git a/old_docs/API_docs_v75/methods/phone_setCallRating.md b/old_docs/API_docs_v75/methods/phone_setCallRating.md
index 9bc6bdd0..9daed209 100644
--- a/old_docs/API_docs_v75/methods/phone_setCallRating.md
+++ b/old_docs/API_docs_v75/methods/phone_setCallRating.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Updates = phone.setCallRating({peer=InputPhoneCall, rating=int, comment='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v75/methods/photos_getUserPhotos.md b/old_docs/API_docs_v75/methods/photos_getUserPhotos.md
index 57f5772b..a01f3180 100644
--- a/old_docs/API_docs_v75/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v75/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v75/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v75/methods/photos_updateProfilePhoto.md
index cca2fe30..f7c91ec6 100644
--- a/old_docs/API_docs_v75/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v75/methods/photos_updateProfilePhoto.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v75/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v75/methods/photos_uploadProfilePhoto.md
index 457bade8..badde2de 100644
--- a/old_docs/API_docs_v75/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v75/methods/photos_uploadProfilePhoto.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v75/methods/stickers_addStickerToSet.md b/old_docs/API_docs_v75/methods/stickers_addStickerToSet.md
index 78e8437c..b1fa2aad 100644
--- a/old_docs/API_docs_v75/methods/stickers_addStickerToSet.md
+++ b/old_docs/API_docs_v75/methods/stickers_addStickerToSet.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.addStickerToSet({stickerset=InputStickerSet, sticker=InputStickerSetItem, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v75/methods/stickers_changeStickerPosition.md b/old_docs/API_docs_v75/methods/stickers_changeStickerPosition.md
index cddc1cbb..98dde67e 100644
--- a/old_docs/API_docs_v75/methods/stickers_changeStickerPosition.md
+++ b/old_docs/API_docs_v75/methods/stickers_changeStickerPosition.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.changeStickerPosition({sticker=InputDocument, position=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/old_docs/API_docs_v75/methods/stickers_createStickerSet.md b/old_docs/API_docs_v75/methods/stickers_createStickerSet.md
index 41e4ad11..741e0ad6 100644
--- a/old_docs/API_docs_v75/methods/stickers_createStickerSet.md
+++ b/old_docs/API_docs_v75/methods/stickers_createStickerSet.md
@@ -46,18 +46,18 @@ Or, if you're into Lua:
messages_StickerSet = stickers.createStickerSet({masks=Bool, user_id=InputUser, title='string', short_name='string', stickers={InputStickerSetItem}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|PACK_SHORT_NAME_INVALID|Short pack name invalid|
-|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|STICKER_EMOJI_INVALID|Sticker emoji invalid|
-|STICKER_FILE_INVALID|Sticker file invalid|
-|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
-|STICKERS_EMPTY|No sticker provided|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|PACK_SHORT_NAME_INVALID|Short pack name invalid|
+|400|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|STICKER_EMOJI_INVALID|Sticker emoji invalid|
+|400|STICKER_FILE_INVALID|Sticker file invalid|
+|400|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
+|400|STICKERS_EMPTY|No sticker provided|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v75/methods/stickers_removeStickerFromSet.md b/old_docs/API_docs_v75/methods/stickers_removeStickerFromSet.md
index ea4621f2..d1fc4339 100644
--- a/old_docs/API_docs_v75/methods/stickers_removeStickerFromSet.md
+++ b/old_docs/API_docs_v75/methods/stickers_removeStickerFromSet.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.removeStickerFromSet({sticker=InputDocument, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/old_docs/API_docs_v75/methods/updates_getChannelDifference.md b/old_docs/API_docs_v75/methods/updates_getChannelDifference.md
index 6fa79529..9735c14a 100644
--- a/old_docs/API_docs_v75/methods/updates_getChannelDifference.md
+++ b/old_docs/API_docs_v75/methods/updates_getChannelDifference.md
@@ -7,8 +7,56 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|force|[Bool](../types/Bool.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|filter|[ChannelMessagesFilter](../types/ChannelMessagesFilter.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_ChannelDifference](../types/updates_ChannelDifference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_ChannelDifference = $MadelineProto->updates->getChannelDifference(['force' => Bool, 'channel' => InputChannel, 'filter' => ChannelMessagesFilter, 'pts' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_ChannelDifference = updates.getChannelDifference({force=Bool, channel=InputChannel, filter=ChannelMessagesFilter, pts=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|400|RANGES_INVALID|Invalid range provided|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v75/methods/updates_getDifference.md b/old_docs/API_docs_v75/methods/updates_getDifference.md
index 33e7d7f2..bcfac4e2 100644
--- a/old_docs/API_docs_v75/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v75/methods/updates_getDifference.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|pts\_total\_limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'pts_total_limit' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, pts_total_limit=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v75/methods/updates_getState.md b/old_docs/API_docs_v75/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v75/methods/updates_getState.md
+++ b/old_docs/API_docs_v75/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v75/methods/upload_getCdnFile.md b/old_docs/API_docs_v75/methods/upload_getCdnFile.md
index 5e5b3f43..be9ad311 100644
--- a/old_docs/API_docs_v75/methods/upload_getCdnFile.md
+++ b/old_docs/API_docs_v75/methods/upload_getCdnFile.md
@@ -7,8 +7,40 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_CdnFile](../types/upload_CdnFile.md)
+
+### Can bots use this method: **NO**
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_CdnFile = $MadelineProto->upload->getCdnFile(['file_token' => 'bytes', 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_CdnFile = upload.getCdnFile({file_token='bytes', offset=int, limit=int, })
+```
+
diff --git a/old_docs/API_docs_v75/methods/upload_getCdnFileHashes.md b/old_docs/API_docs_v75/methods/upload_getCdnFileHashes.md
index ea6a8e75..4c7c341a 100644
--- a/old_docs/API_docs_v75/methods/upload_getCdnFileHashes.md
+++ b/old_docs/API_docs_v75/methods/upload_getCdnFileHashes.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Vector\_of\_CdnFileHash](../types/CdnFileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_CdnFileHash = $MadelineProto->upload->getCdnFileHashes(['file_token' => 'bytes', 'offset' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_CdnFileHash = upload.getCdnFileHashes({file_token='bytes', offset=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/old_docs/API_docs_v75/methods/upload_getFile.md b/old_docs/API_docs_v75/methods/upload_getFile.md
index c72e6090..d8b433d6 100644
--- a/old_docs/API_docs_v75/methods/upload_getFile.md
+++ b/old_docs/API_docs_v75/methods/upload_getFile.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v75/methods/upload_getWebFile.md b/old_docs/API_docs_v75/methods/upload_getWebFile.md
index 21179a66..7b63f96c 100644
--- a/old_docs/API_docs_v75/methods/upload_getWebFile.md
+++ b/old_docs/API_docs_v75/methods/upload_getWebFile.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
upload_WebFile = upload.getWebFile({location=InputWebFileLocation, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LOCATION_INVALID|The provided location is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LOCATION_INVALID|The provided location is invalid|
diff --git a/old_docs/API_docs_v75/methods/upload_reuploadCdnFile.md b/old_docs/API_docs_v75/methods/upload_reuploadCdnFile.md
index cc20d5e3..ef42f7b4 100644
--- a/old_docs/API_docs_v75/methods/upload_reuploadCdnFile.md
+++ b/old_docs/API_docs_v75/methods/upload_reuploadCdnFile.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|request\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Vector\_of\_CdnFileHash](../types/CdnFileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_CdnFileHash = $MadelineProto->upload->reuploadCdnFile(['file_token' => 'bytes', 'request_token' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_CdnFileHash = upload.reuploadCdnFile({file_token='bytes', request_token='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/old_docs/API_docs_v75/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v75/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v75/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v75/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v75/methods/upload_saveFilePart.md b/old_docs/API_docs_v75/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v75/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v75/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v75/methods/users_getFullUser.md b/old_docs/API_docs_v75/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v75/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v75/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v75/methods/users_getUsers.md b/old_docs/API_docs_v75/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v75/methods/users_getUsers.md
+++ b/old_docs/API_docs_v75/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v81/methods/README.md b/old_docs/API_docs_v81/methods/README.md
index bc745ce9..a161eab6 100644
--- a/old_docs/API_docs_v81/methods/README.md
+++ b/old_docs/API_docs_v81/methods/README.md
@@ -30,467 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Accept telegram passport authorization: account.acceptAuthorization
-
-* Accept telegram's TOS: help.acceptTermsOfService
-
-* Add a sticker set: messages.installStickerSet
-
-* Add a sticker to favorites: messages.faveSticker
-
-* Add a sticker to recent stickers: messages.saveRecentSticker
-
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add phone number as contact: contacts.importContacts
-
-* Add sticker to stickerset: stickers.addStickerToSet
-
-* Add users to channel/supergroup: channels.inviteToChannel
-
-* Allow or disallow any user to invite users to this channel/supergroup: channels.toggleInvites
-
-* Block a user: contacts.block
-
-* Bots only: get telegram passport authorization form: account.getAuthorizationForm
-
-* Bots only: send payment form: payments.sendPaymentForm
-
-* Bots only: set precheckout results: messages.setBotPrecheckoutResults
-
-* Bots only: set shipping results: messages.setBotShippingResults
-
-* Bots only: set the callback answer (after a button was clicked): messages.setBotCallbackAnswer
-
-* Bots only: set the results of an inline query: messages.setInlineBotResults
-
-* Call inline bot: messages.getInlineBotResults
-
-* Change notification settings: account.updateNotifySettings
-
-* Change sticker position in photo: stickers.changeStickerPosition
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if about to edit a message or a media caption: messages.getMessageEditData
-
-* Check if an invitation link is valid: messages.checkChatInvite
-
-* Check if this username is available: account.checkUsername
-
-* Check if this username is free and can be assigned to a channel/supergroup: channels.checkUsername
-
-* Clear all recent stickers: messages.clearRecentStickers
-
-* Clear saved payments info: payments.clearSavedInfo
-
-* Confirm this phone number is associated to this account, obtain phone_code_hash from sendConfirmPhoneCode: account.confirmPhone
-
-* Convert chat to supergroup: messages.migrateChat
-
-* Create a chat (not supergroup): messages.createChat
-
-* Create channel/supergroup: channels.createChannel
-
-* Create stickerset: stickers.createStickerSet
-
-* Delete a certain session: account.resetAuthorization
-
-* Delete a certain telegram web login authorization: account.resetWebAuthorization
-
-* Delete a channel/supergroup: channels.deleteChannel
-
-* Delete a contact: contacts.deleteContact
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete all messages of a user in a channel/supergroup: channels.deleteUserHistory
-
-* Delete all temporary authorization keys except the ones provided: auth.dropTempAuthKeys
-
-* Delete channel/supergroup messages: channels.deleteMessages
-
-* Delete chat history: messages.deleteHistory
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete secure telegram passport value: account.deleteSecureValue
-
-* Delete the history of a supergroup/channel: channels.deleteHistory
-
-* Delete this account: account.deleteAccount
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Download a file through telegram: upload.getWebFile
-
-* Edit a message: messages.editMessage
-
-* Edit a sent inline message: messages.editInlineBotMessage
-
-* Edit admin permissions of a user in a channel/supergroup: channels.editAdmin
-
-* Edit admin permissions: messages.editChatAdmin
-
-* Edit the about text of a channel/supergroup: channels.editAbout
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the photo of a supergroup/channel: channels.editPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Edit the title of a supergroup/channel: channels.editTitle
-
-* Enable all users are admins in normal groups (not supergroups): messages.toggleChatAdmins
-
-* Enable or disable hidden history for new channel/supergroup users: channels.togglePreHistoryHidden
-
-* Export chat invite : messages.exportChatInvite
-
-* Export contact as card: contacts.exportCard
-
-* Export the invite link of a channel: channels.exportInvite
-
-* Find a sticker set: messages.searchStickerSets
-
-* Finish account exporting session: account.finishTakeoutSession
-
-* Forward messages: messages.forwardMessages
-
-* Get CDN configuration: help.getCdnConfig
-
-* Get a stickerset: messages.getStickerSet
-
-* Get account TTL: account.getAccountTTL
-
-* Get admin log of a channel/supergroup: channels.getAdminLog
-
-* Get all archived stickers: messages.getArchivedStickers
-
-* Get all channels you left: channels.getLeftChannels
-
-* Get all chats (not supergroups or channels): messages.getAllChats
-
-* Get all contacts: contacts.getContacts
-
-* Get all logged-in authorizations: account.getAuthorizations
-
-* Get all message drafts: messages.getAllDrafts
-
-* Get all secure telegram passport values: account.getAllSecureValues
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get all supergroups/channels where you're admin: channels.getAdminedPublicChannels
-
-* Get and increase message views: messages.getMessagesViews
-
-* Get available languages: langpack.getLanguages
-
-* Get blocked users: contacts.getBlocked
-
-* Get call configuration: phone.getCallConfig
-
-* Get channel/supergroup messages: channels.getMessages
-
-* Get channel/supergroup participants (you should use `$MadelineProto->get_pwr_chat($id)` instead): channels.getParticipants
-
-* Get chats in common with a user: messages.getCommonChats
-
-* Get deep link info: help.getDeepLinkInfo
-
-* Get dialog info of peers: messages.getPeerDialogs
-
-* Get document by SHA256 hash: messages.getDocumentByHash
-
-* Get favorite stickers: messages.getFavedStickers
-
-* Get featured stickers: messages.getFeaturedStickers
-
-* Get high scores of a game sent in an inline message: messages.getInlineGameHighScores
-
-* Get high scores of a game: messages.getGameHighScores
-
-* Get info about a certain channel/supergroup participant: channels.getParticipant
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about multiple channels/supergroups: channels.getChannels
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get information about the current proxy: help.getProxyData
-
-* Get invitation text: help.getInviteText
-
-* Get language pack strings: langpack.getStrings
-
-* Get language pack updates: langpack.getDifference
-
-* Get language pack: langpack.getLangPack
-
-* Get masks: messages.getMaskStickers
-
-* Get message ranges to fetch: messages.getSplitRanges
-
-* Get messages: messages.getMessages
-
-* Get most used chats: contacts.getTopPeers
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get payment form: payments.getPaymentForm
-
-* Get payment receipt: payments.getPaymentReceipt
-
-* Get pinned dialogs: messages.getPinnedDialogs
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get recent locations: messages.getRecentLocations
-
-* Get recent stickers: messages.getRecentStickers
-
-* Get recent t.me URLs: help.getRecentMeUrls
-
-* Get saved contacts: contacts.getSaved
-
-* Get saved gifs: messages.getSavedGifs
-
-* Get saved payments info: payments.getSavedInfo
-
-* Get secure value for telegram passport: account.getSecureValue
-
-* Get server configuration: help.getConfig
-
-* Get stickers attachable to images: messages.getAttachedStickers
-
-* Get stickers: messages.getStickers
-
-* Get telegram web login authorizations: account.getWebAuthorizations
-
-* Get temporary password for buying products through bots: account.getTmpPassword
-
-* Get the callback answer of a bot (after clicking a button): messages.getBotCallbackAnswer
-
-* Get the changelog of this app: help.getAppChangelog
-
-* Get the current password: account.getPassword
-
-* Get the link of a message in a channel: channels.exportMessageLink
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Get the settings of apeer: messages.getPeerSettings
-
-* Get unread mentions: messages.getUnreadMentions
-
-* Get updated TOS: help.getTermsOfServiceUpdate
-
-* Get webpage preview: messages.getWebPage
-
-* Get webpage preview: messages.getWebPagePreview
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Global message search: messages.searchGlobal
-
-* Hide report spam popup: messages.hideReportSpam
-
-* Import card as contact: contacts.importCard
-
-* Import chat invite: messages.importChatInvite
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Invalidate sent phone code: auth.cancelCode
-
-* Invoke method from takeout session: invokeWithTakeout
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invoke with messages range: invokeWithMessagesRange
-
-* Invoke with method without returning updates in the socket: invokeWithoutUpdates
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Join a channel/supergroup: channels.joinChannel
-
-* Kick or ban a user from a channel/supergroup: channels.editBanned
-
-* Leave a channel/supergroup: channels.leaveChannel
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark channel/supergroup history as read: channels.readHistory
-
-* Mark channel/supergroup messages as read: channels.readMessageContents
-
-* Mark mentions as read: messages.readMentions
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Mark new featured stickers as read: messages.readFeaturedStickers
-
-* Notify server that you received a call (server will refuse all incoming calls until the current call is over): phone.receivedCall
-
-* Pin or unpin dialog: messages.toggleDialogPin
-
-* Register device for push notifications: account.registerDevice
-
-* Remove a sticker set: messages.uninstallStickerSet
-
-* Remove sticker from stickerset: stickers.removeStickerFromSet
-
-* Reorder pinned dialogs: messages.reorderPinnedDialogs
-
-* Reorder sticker sets: messages.reorderStickerSets
-
-* Report a message in a supergroup/channel for spam: channels.reportSpam
-
-* Report a message: messages.report
-
-* Report a peer for spam: messages.reportSpam
-
-* Report for spam a secret chat: messages.reportEncryptedSpam
-
-* Report for spam: account.reportPeer
-
-* Resend the SMS verification code: auth.resendCode
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Reset all telegram web login authorizations: account.resetWebAuthorizations
-
-* Reset saved contacts: contacts.resetSaved
-
-* Reset top peer rating for a certain category/peer: contacts.resetTopPeerRating
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Save a GIF: messages.saveGif
-
-* Save a message draft: messages.saveDraft
-
-* Save call debugging info: phone.saveCallDebug
-
-* Save telegram passport secure value: account.saveSecureValue
-
-* Search contacts: contacts.search
-
-* Search gifs: messages.searchGifs
-
-* Search peers or messages: messages.search
-
-* Send a custom request to the bot API: bots.sendCustomRequest
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send an album: messages.sendMultiMedia
-
-* Send an email to recover the 2FA password: auth.requestPasswordRecovery
-
-* Send confirmation phone code: account.sendConfirmPhoneCode
-
-* Send email verification code: account.sendVerifyEmailCode
-
-* Send inline bot result obtained with messages.getInlineBotResults to the chat: messages.sendInlineBotResult
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send phone verification code: account.sendVerifyPhoneCode
-
-* Send screenshot notification: messages.sendScreenshotNotification
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Send webhook request via bot API: bots.answerWebhookJSONQuery
-
-* Set account TTL: account.setAccountTTL
-
-* Set phone call rating: phone.setCallRating
-
-* Set privacy settings: account.setPrivacy
-
-* Set secure value error for telegram passport: users.setSecureValueErrors
-
-* Set the game score of an inline message: messages.setInlineGameScore
-
-* Set the game score: messages.setGameScore
-
-* Set the pinned message of a channel/supergroup: channels.updatePinnedMessage
-
-* Set the supergroup/channel stickerpack: channels.setStickers
-
-* Set the update status of webhook: help.setBotUpdatesStatus
-
-* Start a bot: messages.startBot
-
-* Start account exporting session: account.initTakeoutSession
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Toggle channel signatures: channels.toggleSignatures
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update profile info: account.updateProfile
-
-* Update the username of a supergroup/channel: channels.updateUsername
-
-* Update this user's username: account.updateUsername
-
-* Upload a file without sending it to anyone: messages.uploadMedia
-
-* Upload a secret chat file without sending it to anyone: messages.uploadEncryptedFile
-
-* Upload profile photo: photos.uploadProfilePhoto
-
-* Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
-
-* Validate requested payment info: payments.validateRequestedInfo
-
-* Verify email address: account.verifyEmail
-
-* Verify phone number: account.verifyPhone
-
diff --git a/old_docs/API_docs_v81/methods/account_changePhone.md b/old_docs/API_docs_v81/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/old_docs/API_docs_v81/methods/account_changePhone.md
+++ b/old_docs/API_docs_v81/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v81/methods/account_checkUsername.md b/old_docs/API_docs_v81/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v81/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v81/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v81/methods/account_confirmPhone.md b/old_docs/API_docs_v81/methods/account_confirmPhone.md
index b730c2dc..c114cd20 100644
--- a/old_docs/API_docs_v81/methods/account_confirmPhone.md
+++ b/old_docs/API_docs_v81/methods/account_confirmPhone.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = account.confirmPhone({phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_HASH_INVALID|Code hash invalid|
-|PHONE_CODE_EMPTY|phone_code is missing|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_HASH_INVALID|Code hash invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
diff --git a/old_docs/API_docs_v81/methods/account_getNotifySettings.md b/old_docs/API_docs_v81/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v81/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v81/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v81/methods/account_getPasswordSettings.md b/old_docs/API_docs_v81/methods/account_getPasswordSettings.md
index 8ebb78ee..8f878365 100644
--- a/old_docs/API_docs_v81/methods/account_getPasswordSettings.md
+++ b/old_docs/API_docs_v81/methods/account_getPasswordSettings.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+Get the current 2FA settings
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+### Return type: [account\_PasswordSettings](../types/account_PasswordSettings.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$account_PasswordSettings = $MadelineProto->account->getPasswordSettings(['current_password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+account_PasswordSettings = account.getPasswordSettings({current_password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v81/methods/account_getPrivacy.md b/old_docs/API_docs_v81/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/old_docs/API_docs_v81/methods/account_getPrivacy.md
+++ b/old_docs/API_docs_v81/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v81/methods/account_getTmpPassword.md b/old_docs/API_docs_v81/methods/account_getTmpPassword.md
index fd8314ee..a74d0f5a 100644
--- a/old_docs/API_docs_v81/methods/account_getTmpPassword.md
+++ b/old_docs/API_docs_v81/methods/account_getTmpPassword.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
account_TmpPassword = account.getTmpPassword({password_hash='bytes', period=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_HASH_INVALID|The provided password hash is invalid|
-|TMP_PASSWORD_DISABLED|The temporary password is disabled|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
+|400|TMP_PASSWORD_DISABLED|The temporary password is disabled|
diff --git a/old_docs/API_docs_v81/methods/account_registerDevice.md b/old_docs/API_docs_v81/methods/account_registerDevice.md
index 7c34f6c4..a8e8c2a2 100644
--- a/old_docs/API_docs_v81/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v81/methods/account_registerDevice.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({token_type=int, token='string', app_sandbox=Bool, secret='bytes', other_uids={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v81/methods/account_reportPeer.md b/old_docs/API_docs_v81/methods/account_reportPeer.md
index a203c900..87b080eb 100644
--- a/old_docs/API_docs_v81/methods/account_reportPeer.md
+++ b/old_docs/API_docs_v81/methods/account_reportPeer.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.reportPeer({peer=InputPeer, reason=ReportReason, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v81/methods/account_resetAuthorization.md b/old_docs/API_docs_v81/methods/account_resetAuthorization.md
index c950992c..e8e8ecc4 100644
--- a/old_docs/API_docs_v81/methods/account_resetAuthorization.md
+++ b/old_docs/API_docs_v81/methods/account_resetAuthorization.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.resetAuthorization({hash=long, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v81/methods/account_sendChangePhoneCode.md b/old_docs/API_docs_v81/methods/account_sendChangePhoneCode.md
index d5be60ef..08e5e86e 100644
--- a/old_docs/API_docs_v81/methods/account_sendChangePhoneCode.md
+++ b/old_docs/API_docs_v81/methods/account_sendChangePhoneCode.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendChangePhoneCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v81/methods/account_sendConfirmPhoneCode.md b/old_docs/API_docs_v81/methods/account_sendConfirmPhoneCode.md
index 028a1fdc..9fa7b57e 100644
--- a/old_docs/API_docs_v81/methods/account_sendConfirmPhoneCode.md
+++ b/old_docs/API_docs_v81/methods/account_sendConfirmPhoneCode.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendConfirmPhoneCode({allow_flashcall=Bool, hash='string', current_number=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v81/methods/account_setAccountTTL.md b/old_docs/API_docs_v81/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/old_docs/API_docs_v81/methods/account_setAccountTTL.md
+++ b/old_docs/API_docs_v81/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/old_docs/API_docs_v81/methods/account_setPrivacy.md b/old_docs/API_docs_v81/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/old_docs/API_docs_v81/methods/account_setPrivacy.md
+++ b/old_docs/API_docs_v81/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v81/methods/account_unregisterDevice.md b/old_docs/API_docs_v81/methods/account_unregisterDevice.md
index 13d11e88..e39f0811 100644
--- a/old_docs/API_docs_v81/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v81/methods/account_unregisterDevice.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', other_uids={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v81/methods/account_updateNotifySettings.md b/old_docs/API_docs_v81/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v81/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v81/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v81/methods/account_updatePasswordSettings.md b/old_docs/API_docs_v81/methods/account_updatePasswordSettings.md
index 80f27228..68e5da6d 100644
--- a/old_docs/API_docs_v81/methods/account_updatePasswordSettings.md
+++ b/old_docs/API_docs_v81/methods/account_updatePasswordSettings.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+|new\_settings|[account\_PasswordInputSettings](../types/account_PasswordInputSettings.md) | New 2FA settings | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->account->updatePasswordSettings(['current_password_hash' => 'bytes', 'new_settings' => account_PasswordInputSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = account.updatePasswordSettings({current_password_hash='bytes', new_settings=account_PasswordInputSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EMAIL_UNCONFIRMED|Email unconfirmed|
+|400|EMAIL_UNCONFIRMED_X|The provided email isn't confirmed, X is the length of the verification code that was just sent to the email.|
+|400|NEW_SALT_INVALID|The new salt is invalid|
+|400|NEW_SETTINGS_INVALID|The new settings are invalid|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v81/methods/account_updateProfile.md b/old_docs/API_docs_v81/methods/account_updateProfile.md
index af5b6a0f..0d74c5e5 100644
--- a/old_docs/API_docs_v81/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v81/methods/account_updateProfile.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v81/methods/account_updateStatus.md b/old_docs/API_docs_v81/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v81/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v81/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v81/methods/account_updateUsername.md b/old_docs/API_docs_v81/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v81/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v81/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v81/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v81/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v81/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v81/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v81/methods/auth_cancelCode.md b/old_docs/API_docs_v81/methods/auth_cancelCode.md
index fcbd7713..a69e0118 100644
--- a/old_docs/API_docs_v81/methods/auth_cancelCode.md
+++ b/old_docs/API_docs_v81/methods/auth_cancelCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = auth.cancelCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v81/methods/auth_checkPassword.md b/old_docs/API_docs_v81/methods/auth_checkPassword.md
index 8d76c483..db65cb56 100644
--- a/old_docs/API_docs_v81/methods/auth_checkPassword.md
+++ b/old_docs/API_docs_v81/methods/auth_checkPassword.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->checkPassword(['password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.checkPassword({password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v81/methods/auth_exportAuthorization.md b/old_docs/API_docs_v81/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v81/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v81/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v81/methods/auth_importAuthorization.md b/old_docs/API_docs_v81/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v81/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v81/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v81/methods/auth_importBotAuthorization.md b/old_docs/API_docs_v81/methods/auth_importBotAuthorization.md
index 1a98c1b9..98a2f8ca 100644
--- a/old_docs/API_docs_v81/methods/auth_importBotAuthorization.md
+++ b/old_docs/API_docs_v81/methods/auth_importBotAuthorization.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|api\_id|[int](../types/int.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_hash|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|bot\_auth\_token|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importBotAuthorization(['api_id' => int, 'api_hash' => 'string', 'bot_auth_token' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importBotAuthorization({api_id=int, api_hash='string', bot_auth_token='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ACCESS_TOKEN_EXPIRED|Access token expired|
+|400|ACCESS_TOKEN_INVALID|Access token invalid|
+|400|API_ID_INVALID|API ID invalid|
diff --git a/old_docs/API_docs_v81/methods/auth_logOut.md b/old_docs/API_docs_v81/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v81/methods/auth_logOut.md
+++ b/old_docs/API_docs_v81/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v81/methods/auth_recoverPassword.md b/old_docs/API_docs_v81/methods/auth_recoverPassword.md
index 83ff5aed..d4bad9c5 100644
--- a/old_docs/API_docs_v81/methods/auth_recoverPassword.md
+++ b/old_docs/API_docs_v81/methods/auth_recoverPassword.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
auth_Authorization = auth.recoverPassword({code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_EMPTY|The provided code is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_EMPTY|The provided code is empty|
diff --git a/old_docs/API_docs_v81/methods/auth_requestPasswordRecovery.md b/old_docs/API_docs_v81/methods/auth_requestPasswordRecovery.md
index 1864bbb0..b6ad57ba 100644
--- a/old_docs/API_docs_v81/methods/auth_requestPasswordRecovery.md
+++ b/old_docs/API_docs_v81/methods/auth_requestPasswordRecovery.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
auth_PasswordRecovery = auth.requestPasswordRecovery({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_EMPTY|The provided password is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_EMPTY|The provided password is empty|
diff --git a/old_docs/API_docs_v81/methods/auth_resendCode.md b/old_docs/API_docs_v81/methods/auth_resendCode.md
index ff7868ea..ec730d75 100644
--- a/old_docs/API_docs_v81/methods/auth_resendCode.md
+++ b/old_docs/API_docs_v81/methods/auth_resendCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = auth.resendCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v81/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v81/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v81/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v81/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v81/methods/auth_sendCode.md b/old_docs/API_docs_v81/methods/auth_sendCode.md
index 9afebb55..1e9d1a4e 100644
--- a/old_docs/API_docs_v81/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v81/methods/auth_sendCode.md
@@ -7,8 +7,59 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|allow\_flashcall|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|current\_number|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['allow_flashcall' => Bool, 'phone_number' => 'string', 'current_number' => Bool, 'api_id' => int, 'api_hash' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, api_id=int, api_hash='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v81/methods/auth_signIn.md b/old_docs/API_docs_v81/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v81/methods/auth_signIn.md
+++ b/old_docs/API_docs_v81/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v81/methods/auth_signUp.md b/old_docs/API_docs_v81/methods/auth_signUp.md
index 15960145..31154486 100644
--- a/old_docs/API_docs_v81/methods/auth_signUp.md
+++ b/old_docs/API_docs_v81/methods/auth_signUp.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', phone_code='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v81/methods/bots_answerWebhookJSONQuery.md b/old_docs/API_docs_v81/methods/bots_answerWebhookJSONQuery.md
index ae0fa6d9..f2233514 100644
--- a/old_docs/API_docs_v81/methods/bots_answerWebhookJSONQuery.md
+++ b/old_docs/API_docs_v81/methods/bots_answerWebhookJSONQuery.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = bots.answerWebhookJSONQuery({query_id=long, data=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v81/methods/bots_sendCustomRequest.md b/old_docs/API_docs_v81/methods/bots_sendCustomRequest.md
index c1fd8183..8a6a2df5 100644
--- a/old_docs/API_docs_v81/methods/bots_sendCustomRequest.md
+++ b/old_docs/API_docs_v81/methods/bots_sendCustomRequest.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
DataJSON = bots.sendCustomRequest({custom_method='string', params=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v81/methods/channels_checkUsername.md b/old_docs/API_docs_v81/methods/channels_checkUsername.md
index 483a2f6f..52365d34 100644
--- a/old_docs/API_docs_v81/methods/channels_checkUsername.md
+++ b/old_docs/API_docs_v81/methods/channels_checkUsername.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Bool = channels.checkUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v81/methods/channels_createChannel.md b/old_docs/API_docs_v81/methods/channels_createChannel.md
index b924e6a6..ecaee0ef 100644
--- a/old_docs/API_docs_v81/methods/channels_createChannel.md
+++ b/old_docs/API_docs_v81/methods/channels_createChannel.md
@@ -45,12 +45,12 @@ Or, if you're into Lua:
Updates = channels.createChannel({broadcast=Bool, megagroup=Bool, title='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_TITLE_EMPTY|No chat title provided|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
+|406|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v81/methods/channels_deleteChannel.md b/old_docs/API_docs_v81/methods/channels_deleteChannel.md
index 53a9c23d..1b8d2d48 100644
--- a/old_docs/API_docs_v81/methods/channels_deleteChannel.md
+++ b/old_docs/API_docs_v81/methods/channels_deleteChannel.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Updates = channels.deleteChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v81/methods/channels_deleteMessages.md b/old_docs/API_docs_v81/methods/channels_deleteMessages.md
index f76a9ad1..463ebad0 100644
--- a/old_docs/API_docs_v81/methods/channels_deleteMessages.md
+++ b/old_docs/API_docs_v81/methods/channels_deleteMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_AffectedMessages = channels.deleteMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v81/methods/channels_deleteUserHistory.md b/old_docs/API_docs_v81/methods/channels_deleteUserHistory.md
index 0a4e7d82..33905a7e 100644
--- a/old_docs/API_docs_v81/methods/channels_deleteUserHistory.md
+++ b/old_docs/API_docs_v81/methods/channels_deleteUserHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedHistory = channels.deleteUserHistory({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v81/methods/channels_editAbout.md b/old_docs/API_docs_v81/methods/channels_editAbout.md
index 47111668..d5e090e0 100644
--- a/old_docs/API_docs_v81/methods/channels_editAbout.md
+++ b/old_docs/API_docs_v81/methods/channels_editAbout.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Bool = channels.editAbout({channel=InputChannel, about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
-|CHAT_ABOUT_TOO_LONG|Chat about too long|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
+|400|CHAT_ABOUT_TOO_LONG|Chat about too long|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v81/methods/channels_editAdmin.md b/old_docs/API_docs_v81/methods/channels_editAdmin.md
index 43858599..edb7cf55 100644
--- a/old_docs/API_docs_v81/methods/channels_editAdmin.md
+++ b/old_docs/API_docs_v81/methods/channels_editAdmin.md
@@ -44,19 +44,19 @@ Or, if you're into Lua:
Updates = channels.editAdmin({channel=InputChannel, user_id=InputUser, admin_rights=ChannelAdminRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ADMINS_TOO_MUCH|There are too many admins|
-|BOT_CHANNELS_NA|Bots can't edit admin privileges|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
-|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ADMINS_TOO_MUCH|There are too many admins|
+|400|BOT_CHANNELS_NA|Bots can't edit admin privileges|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
+|403|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v81/methods/channels_editBanned.md b/old_docs/API_docs_v81/methods/channels_editBanned.md
index cffb653e..1fd5f597 100644
--- a/old_docs/API_docs_v81/methods/channels_editBanned.md
+++ b/old_docs/API_docs_v81/methods/channels_editBanned.md
@@ -44,14 +44,14 @@ Or, if you're into Lua:
Updates = channels.editBanned({channel=InputChannel, user_id=InputUser, banned_rights=ChannelBannedRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ADMIN_INVALID|You're not an admin|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ADMIN_INVALID|You're not an admin|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v81/methods/channels_editPhoto.md b/old_docs/API_docs_v81/methods/channels_editPhoto.md
index bec0ba48..caef32d5 100644
--- a/old_docs/API_docs_v81/methods/channels_editPhoto.md
+++ b/old_docs/API_docs_v81/methods/channels_editPhoto.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editPhoto({channel=InputChannel, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|PHOTO_INVALID|Photo invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|PHOTO_INVALID|Photo invalid|
diff --git a/old_docs/API_docs_v81/methods/channels_editTitle.md b/old_docs/API_docs_v81/methods/channels_editTitle.md
index b5efeb39..d7cb33da 100644
--- a/old_docs/API_docs_v81/methods/channels_editTitle.md
+++ b/old_docs/API_docs_v81/methods/channels_editTitle.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editTitle({channel=InputChannel, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v81/methods/channels_exportInvite.md b/old_docs/API_docs_v81/methods/channels_exportInvite.md
index 0918b3e7..9d578deb 100644
--- a/old_docs/API_docs_v81/methods/channels_exportInvite.md
+++ b/old_docs/API_docs_v81/methods/channels_exportInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ExportedChatInvite = channels.exportInvite({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INVITE_HASH_EXPIRED|The invite link has expired|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
diff --git a/old_docs/API_docs_v81/methods/channels_exportMessageLink.md b/old_docs/API_docs_v81/methods/channels_exportMessageLink.md
index 5dea54a7..fc2f248b 100644
--- a/old_docs/API_docs_v81/methods/channels_exportMessageLink.md
+++ b/old_docs/API_docs_v81/methods/channels_exportMessageLink.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
ExportedMessageLink = channels.exportMessageLink({channel=InputChannel, id=int, grouped=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v81/methods/channels_getAdminLog.md b/old_docs/API_docs_v81/methods/channels_getAdminLog.md
index 377c7320..adb87748 100644
--- a/old_docs/API_docs_v81/methods/channels_getAdminLog.md
+++ b/old_docs/API_docs_v81/methods/channels_getAdminLog.md
@@ -48,12 +48,12 @@ Or, if you're into Lua:
channels_AdminLogResults = channels.getAdminLog({channel=InputChannel, q='string', events_filter=ChannelAdminLogEventsFilter, admins={InputUser}, max_id=long, min_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v81/methods/channels_getChannels.md b/old_docs/API_docs_v81/methods/channels_getChannels.md
index 78d50641..95d7a188 100644
--- a/old_docs/API_docs_v81/methods/channels_getChannels.md
+++ b/old_docs/API_docs_v81/methods/channels_getChannels.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = channels.getChannels({id={InputChannel}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v81/methods/channels_getFullChannel.md b/old_docs/API_docs_v81/methods/channels_getFullChannel.md
index 45a8ec72..ebd53de4 100644
--- a/old_docs/API_docs_v81/methods/channels_getFullChannel.md
+++ b/old_docs/API_docs_v81/methods/channels_getFullChannel.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->channels->getFullChannel(['channel' => InputChannel, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = channels.getFullChannel({channel=InputChannel, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v81/methods/channels_getLeftChannels.md b/old_docs/API_docs_v81/methods/channels_getLeftChannels.md
index 2d256964..fac7ae07 100644
--- a/old_docs/API_docs_v81/methods/channels_getLeftChannels.md
+++ b/old_docs/API_docs_v81/methods/channels_getLeftChannels.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_Chats = channels.getLeftChannels({offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TAKEOUT_REQUIRED|A takeout session has to be initialized, first|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|TAKEOUT_REQUIRED|A takeout session has to be initialized, first|
diff --git a/old_docs/API_docs_v81/methods/channels_getMessages.md b/old_docs/API_docs_v81/methods/channels_getMessages.md
index 90cf5a47..f1ae0a4d 100644
--- a/old_docs/API_docs_v81/methods/channels_getMessages.md
+++ b/old_docs/API_docs_v81/methods/channels_getMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_Messages = channels.getMessages({channel=InputChannel, id={InputMessage}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
diff --git a/old_docs/API_docs_v81/methods/channels_getParticipant.md b/old_docs/API_docs_v81/methods/channels_getParticipant.md
index 6633114f..808156fd 100644
--- a/old_docs/API_docs_v81/methods/channels_getParticipant.md
+++ b/old_docs/API_docs_v81/methods/channels_getParticipant.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
channels_ChannelParticipant = channels.getParticipant({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v81/methods/channels_getParticipants.md b/old_docs/API_docs_v81/methods/channels_getParticipants.md
index 5ff242e6..fb7a39df 100644
--- a/old_docs/API_docs_v81/methods/channels_getParticipants.md
+++ b/old_docs/API_docs_v81/methods/channels_getParticipants.md
@@ -46,14 +46,14 @@ Or, if you're into Lua:
channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, filter=ChannelParticipantsFilter, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v81/methods/channels_inviteToChannel.md b/old_docs/API_docs_v81/methods/channels_inviteToChannel.md
index f7093f13..d8c5e88a 100644
--- a/old_docs/API_docs_v81/methods/channels_inviteToChannel.md
+++ b/old_docs/API_docs_v81/methods/channels_inviteToChannel.md
@@ -43,25 +43,25 @@ Or, if you're into Lua:
Updates = channels.inviteToChannel({channel=InputChannel, users={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
-|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_BLOCKED|User blocked|
-|USER_BOT|Bots can only be admins in channels.|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_KICKED|This user was kicked from this supergroup/channel|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
+|400|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_BLOCKED|User blocked|
+|400|USER_BOT|Bots can only be admins in channels.|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_KICKED|This user was kicked from this supergroup/channel|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v81/methods/channels_joinChannel.md b/old_docs/API_docs_v81/methods/channels_joinChannel.md
index b056031a..a4a7c177 100644
--- a/old_docs/API_docs_v81/methods/channels_joinChannel.md
+++ b/old_docs/API_docs_v81/methods/channels_joinChannel.md
@@ -42,15 +42,15 @@ Or, if you're into Lua:
Updates = channels.joinChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
diff --git a/old_docs/API_docs_v81/methods/channels_leaveChannel.md b/old_docs/API_docs_v81/methods/channels_leaveChannel.md
index fdea13ba..6538d443 100644
--- a/old_docs/API_docs_v81/methods/channels_leaveChannel.md
+++ b/old_docs/API_docs_v81/methods/channels_leaveChannel.md
@@ -42,14 +42,14 @@ Or, if you're into Lua:
Updates = channels.leaveChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
-|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
diff --git a/old_docs/API_docs_v81/methods/channels_readHistory.md b/old_docs/API_docs_v81/methods/channels_readHistory.md
index 93dc075f..3532dae0 100644
--- a/old_docs/API_docs_v81/methods/channels_readHistory.md
+++ b/old_docs/API_docs_v81/methods/channels_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readHistory({channel=InputChannel, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v81/methods/channels_readMessageContents.md b/old_docs/API_docs_v81/methods/channels_readMessageContents.md
index 80ddf2b0..8cd8c620 100644
--- a/old_docs/API_docs_v81/methods/channels_readMessageContents.md
+++ b/old_docs/API_docs_v81/methods/channels_readMessageContents.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readMessageContents({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v81/methods/channels_reportSpam.md b/old_docs/API_docs_v81/methods/channels_reportSpam.md
index db80676a..7e273cc5 100644
--- a/old_docs/API_docs_v81/methods/channels_reportSpam.md
+++ b/old_docs/API_docs_v81/methods/channels_reportSpam.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
Bool = channels.reportSpam({channel=InputChannel, user_id=InputUser, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
diff --git a/old_docs/API_docs_v81/methods/channels_setStickers.md b/old_docs/API_docs_v81/methods/channels_setStickers.md
index 10cd68bf..c9b95527 100644
--- a/old_docs/API_docs_v81/methods/channels_setStickers.md
+++ b/old_docs/API_docs_v81/methods/channels_setStickers.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.setStickers({channel=InputChannel, stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PARTICIPANTS_TOO_FEW|Not enough participants|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PARTICIPANTS_TOO_FEW|Not enough participants|
diff --git a/old_docs/API_docs_v81/methods/channels_toggleInvites.md b/old_docs/API_docs_v81/methods/channels_toggleInvites.md
index e5d3fba1..6266d30b 100644
--- a/old_docs/API_docs_v81/methods/channels_toggleInvites.md
+++ b/old_docs/API_docs_v81/methods/channels_toggleInvites.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.toggleInvites({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v81/methods/channels_toggleSignatures.md b/old_docs/API_docs_v81/methods/channels_toggleSignatures.md
index cdfc0fda..f8624946 100644
--- a/old_docs/API_docs_v81/methods/channels_toggleSignatures.md
+++ b/old_docs/API_docs_v81/methods/channels_toggleSignatures.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = channels.toggleSignatures({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v81/methods/channels_updatePinnedMessage.md b/old_docs/API_docs_v81/methods/channels_updatePinnedMessage.md
index 53733a22..37d7c3c0 100644
--- a/old_docs/API_docs_v81/methods/channels_updatePinnedMessage.md
+++ b/old_docs/API_docs_v81/methods/channels_updatePinnedMessage.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = channels.updatePinnedMessage({silent=Bool, channel=InputChannel, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v81/methods/channels_updateUsername.md b/old_docs/API_docs_v81/methods/channels_updateUsername.md
index 677712f9..48d250e6 100644
--- a/old_docs/API_docs_v81/methods/channels_updateUsername.md
+++ b/old_docs/API_docs_v81/methods/channels_updateUsername.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Bool = channels.updateUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_OCCUPIED|The provided username is already occupied|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
diff --git a/old_docs/API_docs_v81/methods/contacts_block.md b/old_docs/API_docs_v81/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v81/methods/contacts_block.md
+++ b/old_docs/API_docs_v81/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v81/methods/contacts_deleteContact.md b/old_docs/API_docs_v81/methods/contacts_deleteContact.md
index ba9569e4..a9321d64 100644
--- a/old_docs/API_docs_v81/methods/contacts_deleteContact.md
+++ b/old_docs/API_docs_v81/methods/contacts_deleteContact.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
contacts_Link = contacts.deleteContact({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v81/methods/contacts_deleteContacts.md b/old_docs/API_docs_v81/methods/contacts_deleteContacts.md
index bfc91fdd..3c8e90f0 100644
--- a/old_docs/API_docs_v81/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v81/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v81/methods/contacts_getStatuses.md b/old_docs/API_docs_v81/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v81/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v81/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v81/methods/contacts_getTopPeers.md b/old_docs/API_docs_v81/methods/contacts_getTopPeers.md
index 4dc13d08..9ad9ab01 100644
--- a/old_docs/API_docs_v81/methods/contacts_getTopPeers.md
+++ b/old_docs/API_docs_v81/methods/contacts_getTopPeers.md
@@ -50,10 +50,10 @@ Or, if you're into Lua:
contacts_TopPeers = contacts.getTopPeers({correspondents=Bool, bots_pm=Bool, bots_inline=Bool, phone_calls=Bool, groups=Bool, channels=Bool, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TYPES_EMPTY|No top peer type was provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TYPES_EMPTY|No top peer type was provided|
diff --git a/old_docs/API_docs_v81/methods/contacts_importCard.md b/old_docs/API_docs_v81/methods/contacts_importCard.md
index 15addde1..ed3d17fe 100644
--- a/old_docs/API_docs_v81/methods/contacts_importCard.md
+++ b/old_docs/API_docs_v81/methods/contacts_importCard.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
User = contacts.importCard({export_card={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|EXPORT_CARD_INVALID|Provided card is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EXPORT_CARD_INVALID|Provided card is invalid|
diff --git a/old_docs/API_docs_v81/methods/contacts_resetTopPeerRating.md b/old_docs/API_docs_v81/methods/contacts_resetTopPeerRating.md
index 43cf1685..787be177 100644
--- a/old_docs/API_docs_v81/methods/contacts_resetTopPeerRating.md
+++ b/old_docs/API_docs_v81/methods/contacts_resetTopPeerRating.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = contacts.resetTopPeerRating({category=TopPeerCategory, peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v81/methods/contacts_resolveUsername.md b/old_docs/API_docs_v81/methods/contacts_resolveUsername.md
index fab56bb1..68f709db 100644
--- a/old_docs/API_docs_v81/methods/contacts_resolveUsername.md
+++ b/old_docs/API_docs_v81/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [contacts\_ResolvedPeer](../types/contacts_ResolvedPeer.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$contacts_ResolvedPeer = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+contacts_ResolvedPeer = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v81/methods/contacts_search.md b/old_docs/API_docs_v81/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v81/methods/contacts_search.md
+++ b/old_docs/API_docs_v81/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v81/methods/contacts_unblock.md b/old_docs/API_docs_v81/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v81/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v81/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v81/methods/help_getCdnConfig.md b/old_docs/API_docs_v81/methods/help_getCdnConfig.md
index 9e047a1d..ba526365 100644
--- a/old_docs/API_docs_v81/methods/help_getCdnConfig.md
+++ b/old_docs/API_docs_v81/methods/help_getCdnConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
CdnConfig = help.getCdnConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v81/methods/help_getConfig.md b/old_docs/API_docs_v81/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v81/methods/help_getConfig.md
+++ b/old_docs/API_docs_v81/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v81/methods/initConnection.md b/old_docs/API_docs_v81/methods/initConnection.md
index 69d29401..5c4bfab9 100644
--- a/old_docs/API_docs_v81/methods/initConnection.md
+++ b/old_docs/API_docs_v81/methods/initConnection.md
@@ -50,11 +50,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', system_lang_code='string', lang_pack='string', lang_code='string', proxy=InputClientProxy, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v81/methods/invokeWithLayer.md b/old_docs/API_docs_v81/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/old_docs/API_docs_v81/methods/invokeWithLayer.md
+++ b/old_docs/API_docs_v81/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v81/methods/langpack_getDifference.md b/old_docs/API_docs_v81/methods/langpack_getDifference.md
index ed7e4028..70295776 100644
--- a/old_docs/API_docs_v81/methods/langpack_getDifference.md
+++ b/old_docs/API_docs_v81/methods/langpack_getDifference.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getDifference({from_version=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v81/methods/langpack_getLangPack.md b/old_docs/API_docs_v81/methods/langpack_getLangPack.md
index 50684fef..de6ab2ab 100644
--- a/old_docs/API_docs_v81/methods/langpack_getLangPack.md
+++ b/old_docs/API_docs_v81/methods/langpack_getLangPack.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getLangPack({lang_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v81/methods/langpack_getLanguages.md b/old_docs/API_docs_v81/methods/langpack_getLanguages.md
index 7ffc0f3b..0b09a845 100644
--- a/old_docs/API_docs_v81/methods/langpack_getLanguages.md
+++ b/old_docs/API_docs_v81/methods/langpack_getLanguages.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_LangPackLanguage = langpack.getLanguages({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v81/methods/langpack_getStrings.md b/old_docs/API_docs_v81/methods/langpack_getStrings.md
index 1101ec91..3276120f 100644
--- a/old_docs/API_docs_v81/methods/langpack_getStrings.md
+++ b/old_docs/API_docs_v81/methods/langpack_getStrings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Vector_of_LangPackString = langpack.getStrings({lang_code='string', keys={'string'}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_acceptEncryption.md b/old_docs/API_docs_v81/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v81/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v81/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v81/methods/messages_addChatUser.md b/old_docs/API_docs_v81/methods/messages_addChatUser.md
index bc0d6253..b5e164b2 100644
--- a/old_docs/API_docs_v81/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v81/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
Updates = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v81/methods/messages_checkChatInvite.md b/old_docs/API_docs_v81/methods/messages_checkChatInvite.md
index de28b09b..0d13d55e 100644
--- a/old_docs/API_docs_v81/methods/messages_checkChatInvite.md
+++ b/old_docs/API_docs_v81/methods/messages_checkChatInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ChatInvite = messages.checkChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_createChat.md b/old_docs/API_docs_v81/methods/messages_createChat.md
index 8f6e9672..b2623f1d 100644
--- a/old_docs/API_docs_v81/methods/messages_createChat.md
+++ b/old_docs/API_docs_v81/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v81/methods/messages_deleteChatUser.md b/old_docs/API_docs_v81/methods/messages_deleteChatUser.md
index 63529571..11b9b220 100644
--- a/old_docs/API_docs_v81/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v81/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v81/methods/messages_deleteHistory.md b/old_docs/API_docs_v81/methods/messages_deleteHistory.md
index 2ade177e..338c2cdf 100644
--- a/old_docs/API_docs_v81/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v81/methods/messages_deleteHistory.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({just_clear=Bool, peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_deleteMessages.md b/old_docs/API_docs_v81/methods/messages_deleteMessages.md
index 4c65080a..41517dd0 100644
--- a/old_docs/API_docs_v81/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v81/methods/messages_deleteMessages.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.deleteMessages({revoke=Bool, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v81/methods/messages_discardEncryption.md b/old_docs/API_docs_v81/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v81/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v81/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_editChatAdmin.md b/old_docs/API_docs_v81/methods/messages_editChatAdmin.md
index 2b4dc94c..6f6c1376 100644
--- a/old_docs/API_docs_v81/methods/messages_editChatAdmin.md
+++ b/old_docs/API_docs_v81/methods/messages_editChatAdmin.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.editChatAdmin({chat_id=InputPeer, user_id=InputUser, is_admin=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_editChatPhoto.md b/old_docs/API_docs_v81/methods/messages_editChatPhoto.md
index 2a82c232..a21a03b9 100644
--- a/old_docs/API_docs_v81/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v81/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Updates = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_editChatTitle.md b/old_docs/API_docs_v81/methods/messages_editChatTitle.md
index 2c338ad6..72f78741 100644
--- a/old_docs/API_docs_v81/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v81/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v81/methods/messages_editInlineBotMessage.md b/old_docs/API_docs_v81/methods/messages_editInlineBotMessage.md
index ea371589..c1b49029 100644
--- a/old_docs/API_docs_v81/methods/messages_editInlineBotMessage.md
+++ b/old_docs/API_docs_v81/methods/messages_editInlineBotMessage.md
@@ -98,11 +98,11 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
diff --git a/old_docs/API_docs_v81/methods/messages_editMessage.md b/old_docs/API_docs_v81/methods/messages_editMessage.md
index e6f55d08..ed3c9ada 100644
--- a/old_docs/API_docs_v81/methods/messages_editMessage.md
+++ b/old_docs/API_docs_v81/methods/messages_editMessage.md
@@ -99,20 +99,20 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v81/methods/messages_exportChatInvite.md b/old_docs/API_docs_v81/methods/messages_exportChatInvite.md
index f3449e79..bc6272e4 100644
--- a/old_docs/API_docs_v81/methods/messages_exportChatInvite.md
+++ b/old_docs/API_docs_v81/methods/messages_exportChatInvite.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
ExportedChatInvite = messages.exportChatInvite({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_faveSticker.md b/old_docs/API_docs_v81/methods/messages_faveSticker.md
index a8b1ab56..9f9f423d 100644
--- a/old_docs/API_docs_v81/methods/messages_faveSticker.md
+++ b/old_docs/API_docs_v81/methods/messages_faveSticker.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.faveSticker({id=InputDocument, unfave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_forwardMessages.md b/old_docs/API_docs_v81/methods/messages_forwardMessages.md
index d2453d05..743fa7a6 100644
--- a/old_docs/API_docs_v81/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v81/methods/messages_forwardMessages.md
@@ -48,29 +48,29 @@ Or, if you're into Lua:
Updates = messages.forwardMessages({silent=Bool, background=Bool, with_my_score=Bool, grouped=Bool, from_peer=InputPeer, id={int}, to_peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v81/methods/messages_getBotCallbackAnswer.md b/old_docs/API_docs_v81/methods/messages_getBotCallbackAnswer.md
index f97fa5b0..3f8cc23b 100644
--- a/old_docs/API_docs_v81/methods/messages_getBotCallbackAnswer.md
+++ b/old_docs/API_docs_v81/methods/messages_getBotCallbackAnswer.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
messages_BotCallbackAnswer = messages.getBotCallbackAnswer({game=Bool, peer=InputPeer, msg_id=int, data='bytes', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v81/methods/messages_getChats.md b/old_docs/API_docs_v81/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/old_docs/API_docs_v81/methods/messages_getChats.md
+++ b/old_docs/API_docs_v81/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_getCommonChats.md b/old_docs/API_docs_v81/methods/messages_getCommonChats.md
index 9470a0ee..cff23c3f 100644
--- a/old_docs/API_docs_v81/methods/messages_getCommonChats.md
+++ b/old_docs/API_docs_v81/methods/messages_getCommonChats.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_Chats = messages.getCommonChats({user_id=InputUser, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_getDhConfig.md b/old_docs/API_docs_v81/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v81/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v81/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_getDialogs.md b/old_docs/API_docs_v81/methods/messages_getDialogs.md
index 28590399..e95ea75b 100644
--- a/old_docs/API_docs_v81/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v81/methods/messages_getDialogs.md
@@ -46,13 +46,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({exclude_pinned=Bool, offset_date=int, offset_id=int, offset_peer=InputPeer, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v81/methods/messages_getDocumentByHash.md b/old_docs/API_docs_v81/methods/messages_getDocumentByHash.md
index 73a235d5..06469c52 100644
--- a/old_docs/API_docs_v81/methods/messages_getDocumentByHash.md
+++ b/old_docs/API_docs_v81/methods/messages_getDocumentByHash.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Document = messages.getDocumentByHash({sha256='bytes', size=int, mime_type='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_getFullChat.md b/old_docs/API_docs_v81/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v81/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v81/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_getGameHighScores.md b/old_docs/API_docs_v81/methods/messages_getGameHighScores.md
index 249e1d09..5c484bbb 100644
--- a/old_docs/API_docs_v81/methods/messages_getGameHighScores.md
+++ b/old_docs/API_docs_v81/methods/messages_getGameHighScores.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
messages_HighScores = messages.getGameHighScores({peer=InputPeer, id=int, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v81/methods/messages_getHistory.md b/old_docs/API_docs_v81/methods/messages_getHistory.md
index d623a61e..a0389d7b 100644
--- a/old_docs/API_docs_v81/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v81/methods/messages_getHistory.md
@@ -49,16 +49,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset_id=int, offset_date=int, add_offset=int, limit=int, max_id=int, min_id=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v81/methods/messages_getInlineBotResults.md b/old_docs/API_docs_v81/methods/messages_getInlineBotResults.md
index 1efcb412..17d678b7 100644
--- a/old_docs/API_docs_v81/methods/messages_getInlineBotResults.md
+++ b/old_docs/API_docs_v81/methods/messages_getInlineBotResults.md
@@ -46,13 +46,13 @@ Or, if you're into Lua:
messages_BotResults = messages.getInlineBotResults({bot=InputUser, peer=InputPeer, geo_point=InputGeoPoint, query='string', offset='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
-|BOT_INVALID|This is not a valid bot|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
+|400|BOT_INVALID|This is not a valid bot|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v81/methods/messages_getInlineGameHighScores.md b/old_docs/API_docs_v81/methods/messages_getInlineGameHighScores.md
index e68c6db8..ac33b6b8 100644
--- a/old_docs/API_docs_v81/methods/messages_getInlineGameHighScores.md
+++ b/old_docs/API_docs_v81/methods/messages_getInlineGameHighScores.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_HighScores = messages.getInlineGameHighScores({id=InputBotInlineMessageID, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v81/methods/messages_getMessageEditData.md b/old_docs/API_docs_v81/methods/messages_getMessageEditData.md
index 7f1b7164..b907d78c 100644
--- a/old_docs/API_docs_v81/methods/messages_getMessageEditData.md
+++ b/old_docs/API_docs_v81/methods/messages_getMessageEditData.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_MessageEditData = messages.getMessageEditData({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v81/methods/messages_getMessagesViews.md b/old_docs/API_docs_v81/methods/messages_getMessagesViews.md
index 3d490315..143e568c 100644
--- a/old_docs/API_docs_v81/methods/messages_getMessagesViews.md
+++ b/old_docs/API_docs_v81/methods/messages_getMessagesViews.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
Vector_of_int = messages.getMessagesViews({peer=InputPeer, id={int}, increment=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_getPeerDialogs.md b/old_docs/API_docs_v81/methods/messages_getPeerDialogs.md
index 02eb9b43..17e0d11e 100644
--- a/old_docs/API_docs_v81/methods/messages_getPeerDialogs.md
+++ b/old_docs/API_docs_v81/methods/messages_getPeerDialogs.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPeerDialogs({peers={InputDialogPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_getPeerSettings.md b/old_docs/API_docs_v81/methods/messages_getPeerSettings.md
index 26dafb9b..69032ff5 100644
--- a/old_docs/API_docs_v81/methods/messages_getPeerSettings.md
+++ b/old_docs/API_docs_v81/methods/messages_getPeerSettings.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
PeerSettings = messages.getPeerSettings({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_getPinnedDialogs.md b/old_docs/API_docs_v81/methods/messages_getPinnedDialogs.md
index 828d622e..f106098d 100644
--- a/old_docs/API_docs_v81/methods/messages_getPinnedDialogs.md
+++ b/old_docs/API_docs_v81/methods/messages_getPinnedDialogs.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPinnedDialogs({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FOLDER_ID_INVALID|Invalid folder ID|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FOLDER_ID_INVALID|Invalid folder ID|
diff --git a/old_docs/API_docs_v81/methods/messages_getStickerSet.md b/old_docs/API_docs_v81/methods/messages_getStickerSet.md
index 57bce84d..487316cc 100644
--- a/old_docs/API_docs_v81/methods/messages_getStickerSet.md
+++ b/old_docs/API_docs_v81/methods/messages_getStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_StickerSet = messages.getStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_getUnreadMentions.md b/old_docs/API_docs_v81/methods/messages_getUnreadMentions.md
index 1fa1f269..923229eb 100644
--- a/old_docs/API_docs_v81/methods/messages_getUnreadMentions.md
+++ b/old_docs/API_docs_v81/methods/messages_getUnreadMentions.md
@@ -47,10 +47,10 @@ Or, if you're into Lua:
messages_Messages = messages.getUnreadMentions({peer=InputPeer, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_getWebPage.md b/old_docs/API_docs_v81/methods/messages_getWebPage.md
index ce51ff41..63ef5e93 100644
--- a/old_docs/API_docs_v81/methods/messages_getWebPage.md
+++ b/old_docs/API_docs_v81/methods/messages_getWebPage.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
WebPage = messages.getWebPage({url='string', hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|WC_CONVERT_URL_INVALID|WC convert URL invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|WC_CONVERT_URL_INVALID|WC convert URL invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_hideReportSpam.md b/old_docs/API_docs_v81/methods/messages_hideReportSpam.md
index c4bf7399..57756d2e 100644
--- a/old_docs/API_docs_v81/methods/messages_hideReportSpam.md
+++ b/old_docs/API_docs_v81/methods/messages_hideReportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.hideReportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_importChatInvite.md b/old_docs/API_docs_v81/methods/messages_importChatInvite.md
index 12120867..101b4b19 100644
--- a/old_docs/API_docs_v81/methods/messages_importChatInvite.md
+++ b/old_docs/API_docs_v81/methods/messages_importChatInvite.md
@@ -42,16 +42,16 @@ Or, if you're into Lua:
Updates = messages.importChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v81/methods/messages_installStickerSet.md b/old_docs/API_docs_v81/methods/messages_installStickerSet.md
index 21a57a85..67f2aca0 100644
--- a/old_docs/API_docs_v81/methods/messages_installStickerSet.md
+++ b/old_docs/API_docs_v81/methods/messages_installStickerSet.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_StickerSetInstallResult = messages.installStickerSet({stickerset=InputStickerSet, archived=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_migrateChat.md b/old_docs/API_docs_v81/methods/messages_migrateChat.md
index a72f4c11..ee4010eb 100644
--- a/old_docs/API_docs_v81/methods/messages_migrateChat.md
+++ b/old_docs/API_docs_v81/methods/messages_migrateChat.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
Updates = messages.migrateChat({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v81/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v81/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v81/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v81/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v81/methods/messages_readHistory.md b/old_docs/API_docs_v81/methods/messages_readHistory.md
index 2ad5cd09..a7f0eca7 100644
--- a/old_docs/API_docs_v81/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v81/methods/messages_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.readHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v81/methods/messages_receivedQueue.md b/old_docs/API_docs_v81/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v81/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v81/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v81/methods/messages_reorderPinnedDialogs.md b/old_docs/API_docs_v81/methods/messages_reorderPinnedDialogs.md
index 49aaca93..2452409a 100644
--- a/old_docs/API_docs_v81/methods/messages_reorderPinnedDialogs.md
+++ b/old_docs/API_docs_v81/methods/messages_reorderPinnedDialogs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.reorderPinnedDialogs({force=Bool, order={InputDialogPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_reportEncryptedSpam.md b/old_docs/API_docs_v81/methods/messages_reportEncryptedSpam.md
index 9b1e868b..aeac27ef 100644
--- a/old_docs/API_docs_v81/methods/messages_reportEncryptedSpam.md
+++ b/old_docs/API_docs_v81/methods/messages_reportEncryptedSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportEncryptedSpam({peer=InputEncryptedChat, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_reportSpam.md b/old_docs/API_docs_v81/methods/messages_reportSpam.md
index e92fba13..dc256e55 100644
--- a/old_docs/API_docs_v81/methods/messages_reportSpam.md
+++ b/old_docs/API_docs_v81/methods/messages_reportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_requestEncryption.md b/old_docs/API_docs_v81/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v81/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v81/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_saveDraft.md b/old_docs/API_docs_v81/methods/messages_saveDraft.md
index 791ce234..ea6d407e 100644
--- a/old_docs/API_docs_v81/methods/messages_saveDraft.md
+++ b/old_docs/API_docs_v81/methods/messages_saveDraft.md
@@ -89,10 +89,10 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_saveGif.md b/old_docs/API_docs_v81/methods/messages_saveGif.md
index f504ff9e..010e17ec 100644
--- a/old_docs/API_docs_v81/methods/messages_saveGif.md
+++ b/old_docs/API_docs_v81/methods/messages_saveGif.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.saveGif({id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|GIF_ID_INVALID|The provided GIF ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|GIF_ID_INVALID|The provided GIF ID is invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_saveRecentSticker.md b/old_docs/API_docs_v81/methods/messages_saveRecentSticker.md
index 98c74efd..072b6fe9 100644
--- a/old_docs/API_docs_v81/methods/messages_saveRecentSticker.md
+++ b/old_docs/API_docs_v81/methods/messages_saveRecentSticker.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.saveRecentSticker({attached=Bool, id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_search.md b/old_docs/API_docs_v81/methods/messages_search.md
index 83cb34c6..07529b40 100644
--- a/old_docs/API_docs_v81/methods/messages_search.md
+++ b/old_docs/API_docs_v81/methods/messages_search.md
@@ -53,16 +53,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({peer=InputPeer, q='string', from_id=InputUser, filter=MessagesFilter, min_date=int, max_date=int, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_searchGifs.md b/old_docs/API_docs_v81/methods/messages_searchGifs.md
index 7be4173b..1602d35e 100644
--- a/old_docs/API_docs_v81/methods/messages_searchGifs.md
+++ b/old_docs/API_docs_v81/methods/messages_searchGifs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_FoundGifs = messages.searchGifs({q='string', offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v81/methods/messages_searchGlobal.md b/old_docs/API_docs_v81/methods/messages_searchGlobal.md
index fb38398b..c8da163c 100644
--- a/old_docs/API_docs_v81/methods/messages_searchGlobal.md
+++ b/old_docs/API_docs_v81/methods/messages_searchGlobal.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
messages_Messages = messages.searchGlobal({q='string', offset_date=int, offset_peer=InputPeer, offset_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v81/methods/messages_sendEncrypted.md b/old_docs/API_docs_v81/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v81/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v81/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v81/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v81/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v81/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v81/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v81/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v81/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v81/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v81/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v81/methods/messages_sendInlineBotResult.md b/old_docs/API_docs_v81/methods/messages_sendInlineBotResult.md
index 9ffa02ae..a2b57f4d 100644
--- a/old_docs/API_docs_v81/methods/messages_sendInlineBotResult.md
+++ b/old_docs/API_docs_v81/methods/messages_sendInlineBotResult.md
@@ -48,15 +48,15 @@ Or, if you're into Lua:
Updates = messages.sendInlineBotResult({silent=Bool, background=Bool, clear_draft=Bool, peer=InputPeer, reply_to_msg_id=int, query_id=long, id='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INLINE_RESULT_EXPIRED|The inline query expired|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|QUERY_ID_EMPTY|The query ID is empty|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INLINE_RESULT_EXPIRED|The inline query expired|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|QUERY_ID_EMPTY|The query ID is empty|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v81/methods/messages_sendMedia.md b/old_docs/API_docs_v81/methods/messages_sendMedia.md
index 44c604c6..a2244583 100644
--- a/old_docs/API_docs_v81/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v81/methods/messages_sendMedia.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v81/methods/messages_sendMessage.md b/old_docs/API_docs_v81/methods/messages_sendMessage.md
index 5641ebc3..e0ab305d 100644
--- a/old_docs/API_docs_v81/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v81/methods/messages_sendMessage.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v81/methods/messages_sendMultiMedia.md b/old_docs/API_docs_v81/methods/messages_sendMultiMedia.md
index 9ebdcb88..5684a6d2 100644
--- a/old_docs/API_docs_v81/methods/messages_sendMultiMedia.md
+++ b/old_docs/API_docs_v81/methods/messages_sendMultiMedia.md
@@ -47,11 +47,11 @@ Or, if you're into Lua:
Updates = messages.sendMultiMedia({silent=Bool, background=Bool, clear_draft=Bool, peer=InputPeer, reply_to_msg_id=int, multi_media={InputSingleMedia}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_sendScreenshotNotification.md b/old_docs/API_docs_v81/methods/messages_sendScreenshotNotification.md
index 3f5bb36d..4e4e40f5 100644
--- a/old_docs/API_docs_v81/methods/messages_sendScreenshotNotification.md
+++ b/old_docs/API_docs_v81/methods/messages_sendScreenshotNotification.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = messages.sendScreenshotNotification({peer=InputPeer, reply_to_msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_setBotCallbackAnswer.md b/old_docs/API_docs_v81/methods/messages_setBotCallbackAnswer.md
index ed058b4f..630ca61c 100644
--- a/old_docs/API_docs_v81/methods/messages_setBotCallbackAnswer.md
+++ b/old_docs/API_docs_v81/methods/messages_setBotCallbackAnswer.md
@@ -52,11 +52,11 @@ Bool = messages.setBotCallbackAnswer({alert=Bool, query_id=long, message='string
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|URL_INVALID|Invalid URL provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|URL_INVALID|Invalid URL provided|
diff --git a/old_docs/API_docs_v81/methods/messages_setBotPrecheckoutResults.md b/old_docs/API_docs_v81/methods/messages_setBotPrecheckoutResults.md
index cc615123..d6e0e61b 100644
--- a/old_docs/API_docs_v81/methods/messages_setBotPrecheckoutResults.md
+++ b/old_docs/API_docs_v81/methods/messages_setBotPrecheckoutResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotPrecheckoutResults({success=Bool, query_id=long, error='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ERROR_TEXT_EMPTY|The provided error message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ERROR_TEXT_EMPTY|The provided error message is empty|
diff --git a/old_docs/API_docs_v81/methods/messages_setBotShippingResults.md b/old_docs/API_docs_v81/methods/messages_setBotShippingResults.md
index f3a86f4f..adc4f64f 100644
--- a/old_docs/API_docs_v81/methods/messages_setBotShippingResults.md
+++ b/old_docs/API_docs_v81/methods/messages_setBotShippingResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotShippingResults({query_id=long, error='string', shipping_options={ShippingOption}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v81/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v81/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v81/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_setGameScore.md b/old_docs/API_docs_v81/methods/messages_setGameScore.md
index 548ee889..429b04c6 100644
--- a/old_docs/API_docs_v81/methods/messages_setGameScore.md
+++ b/old_docs/API_docs_v81/methods/messages_setGameScore.md
@@ -47,12 +47,12 @@ Or, if you're into Lua:
Updates = messages.setGameScore({edit_message=Bool, force=Bool, peer=InputPeer, id=int, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v81/methods/messages_setInlineBotResults.md b/old_docs/API_docs_v81/methods/messages_setInlineBotResults.md
index ab388e39..df4c30d4 100644
--- a/old_docs/API_docs_v81/methods/messages_setInlineBotResults.md
+++ b/old_docs/API_docs_v81/methods/messages_setInlineBotResults.md
@@ -48,23 +48,23 @@ Or, if you're into Lua:
Bool = messages.setInlineBotResults({gallery=Bool, private=Bool, query_id=long, results={InputBotInlineResult}, cache_time=int, next_offset='string', switch_pm=InlineBotSwitchPM, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ARTICLE_TITLE_EMPTY|The title of the article is empty|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|PHOTO_INVALID|Photo invalid|
-|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
-|QUERY_ID_INVALID|The query ID is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|RESULT_TYPE_INVALID|Result type invalid|
-|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
-|START_PARAM_INVALID|Start parameter invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ARTICLE_TITLE_EMPTY|The title of the article is empty|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|PHOTO_INVALID|Photo invalid|
+|400|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|RESULT_TYPE_INVALID|Result type invalid|
+|400|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
+|400|START_PARAM_INVALID|Start parameter invalid|
+|403|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v81/methods/messages_setInlineGameScore.md b/old_docs/API_docs_v81/methods/messages_setInlineGameScore.md
index 5eeb1540..62b163d5 100644
--- a/old_docs/API_docs_v81/methods/messages_setInlineGameScore.md
+++ b/old_docs/API_docs_v81/methods/messages_setInlineGameScore.md
@@ -46,11 +46,11 @@ Or, if you're into Lua:
Bool = messages.setInlineGameScore({edit_message=Bool, force=Bool, id=InputBotInlineMessageID, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v81/methods/messages_setTyping.md b/old_docs/API_docs_v81/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v81/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v81/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v81/methods/messages_startBot.md b/old_docs/API_docs_v81/methods/messages_startBot.md
index aa2b2d00..4bf12aa6 100644
--- a/old_docs/API_docs_v81/methods/messages_startBot.md
+++ b/old_docs/API_docs_v81/methods/messages_startBot.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = messages.startBot({bot=InputUser, peer=InputPeer, start_param='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INVALID|This is not a valid bot|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|START_PARAM_EMPTY|The start parameter is empty|
-|START_PARAM_INVALID|Start parameter invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INVALID|This is not a valid bot|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|START_PARAM_EMPTY|The start parameter is empty|
+|400|START_PARAM_INVALID|Start parameter invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_toggleChatAdmins.md b/old_docs/API_docs_v81/methods/messages_toggleChatAdmins.md
index 7851806d..8ea6e65e 100644
--- a/old_docs/API_docs_v81/methods/messages_toggleChatAdmins.md
+++ b/old_docs/API_docs_v81/methods/messages_toggleChatAdmins.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.toggleChatAdmins({chat_id=InputPeer, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v81/methods/messages_toggleDialogPin.md b/old_docs/API_docs_v81/methods/messages_toggleDialogPin.md
index 22c6d15d..ff46ef21 100644
--- a/old_docs/API_docs_v81/methods/messages_toggleDialogPin.md
+++ b/old_docs/API_docs_v81/methods/messages_toggleDialogPin.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.toggleDialogPin({pinned=Bool, peer=InputDialogPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_uninstallStickerSet.md b/old_docs/API_docs_v81/methods/messages_uninstallStickerSet.md
index 59abc510..6b7a2006 100644
--- a/old_docs/API_docs_v81/methods/messages_uninstallStickerSet.md
+++ b/old_docs/API_docs_v81/methods/messages_uninstallStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.uninstallStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v81/methods/messages_uploadMedia.md b/old_docs/API_docs_v81/methods/messages_uploadMedia.md
index afc806fe..09fc074c 100644
--- a/old_docs/API_docs_v81/methods/messages_uploadMedia.md
+++ b/old_docs/API_docs_v81/methods/messages_uploadMedia.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
MessageMedia = messages.uploadMedia({peer=InputPeer, media=InputMedia, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v81/methods/payments_getPaymentForm.md b/old_docs/API_docs_v81/methods/payments_getPaymentForm.md
index e8e04f37..4c28121f 100644
--- a/old_docs/API_docs_v81/methods/payments_getPaymentForm.md
+++ b/old_docs/API_docs_v81/methods/payments_getPaymentForm.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentForm = payments.getPaymentForm({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v81/methods/payments_getPaymentReceipt.md b/old_docs/API_docs_v81/methods/payments_getPaymentReceipt.md
index acb1c209..0e2f76a8 100644
--- a/old_docs/API_docs_v81/methods/payments_getPaymentReceipt.md
+++ b/old_docs/API_docs_v81/methods/payments_getPaymentReceipt.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentReceipt = payments.getPaymentReceipt({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v81/methods/payments_sendPaymentForm.md b/old_docs/API_docs_v81/methods/payments_sendPaymentForm.md
index b8fa905d..1910ede8 100644
--- a/old_docs/API_docs_v81/methods/payments_sendPaymentForm.md
+++ b/old_docs/API_docs_v81/methods/payments_sendPaymentForm.md
@@ -45,10 +45,10 @@ Or, if you're into Lua:
payments_PaymentResult = payments.sendPaymentForm({msg_id=int, requested_info_id='string', shipping_option_id='string', credentials=InputPaymentCredentials, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v81/methods/payments_validateRequestedInfo.md b/old_docs/API_docs_v81/methods/payments_validateRequestedInfo.md
index 3b9da7e6..f18e1660 100644
--- a/old_docs/API_docs_v81/methods/payments_validateRequestedInfo.md
+++ b/old_docs/API_docs_v81/methods/payments_validateRequestedInfo.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
payments_ValidatedRequestedInfo = payments.validateRequestedInfo({save=Bool, msg_id=int, info=PaymentRequestedInfo, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v81/methods/phone_acceptCall.md b/old_docs/API_docs_v81/methods/phone_acceptCall.md
index b75ac65b..f5c58f01 100644
--- a/old_docs/API_docs_v81/methods/phone_acceptCall.md
+++ b/old_docs/API_docs_v81/methods/phone_acceptCall.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->acceptCall(['peer' => InputPhoneCall, 'g_b' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.acceptCall({peer=InputPhoneCall, g_b='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
diff --git a/old_docs/API_docs_v81/methods/phone_confirmCall.md b/old_docs/API_docs_v81/methods/phone_confirmCall.md
index 1a75563d..468307cc 100644
--- a/old_docs/API_docs_v81/methods/phone_confirmCall.md
+++ b/old_docs/API_docs_v81/methods/phone_confirmCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->confirmCall(['peer' => InputPhoneCall, 'g_a' => 'bytes', 'key_fingerprint' => long, 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.confirmCall({peer=InputPhoneCall, g_a='bytes', key_fingerprint=long, protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v81/methods/phone_discardCall.md b/old_docs/API_docs_v81/methods/phone_discardCall.md
index e50456eb..ffaa18ea 100644
--- a/old_docs/API_docs_v81/methods/phone_discardCall.md
+++ b/old_docs/API_docs_v81/methods/phone_discardCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|duration|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|reason|[PhoneCallDiscardReason](../types/PhoneCallDiscardReason.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|connection\_id|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [Updates](../types/Updates.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Updates = $MadelineProto->phone->discardCall(['peer' => InputPhoneCall, 'duration' => int, 'reason' => PhoneCallDiscardReason, 'connection_id' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Updates = phone.discardCall({peer=InputPhoneCall, duration=int, reason=PhoneCallDiscardReason, connection_id=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v81/methods/phone_receivedCall.md b/old_docs/API_docs_v81/methods/phone_receivedCall.md
index c43bc8ac..6091424b 100644
--- a/old_docs/API_docs_v81/methods/phone_receivedCall.md
+++ b/old_docs/API_docs_v81/methods/phone_receivedCall.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Bool = phone.receivedCall({peer=InputPhoneCall, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_ALREADY_DECLINED|The call was already declined|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v81/methods/phone_requestCall.md b/old_docs/API_docs_v81/methods/phone_requestCall.md
index 9b8df564..c8e828f2 100644
--- a/old_docs/API_docs_v81/methods/phone_requestCall.md
+++ b/old_docs/API_docs_v81/methods/phone_requestCall.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Optional|
+|g\_a\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->requestCall(['user_id' => InputUser, 'g_a_hash' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.requestCall({user_id=InputUser, g_a_hash='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
+|400|PARTICIPANT_VERSION_OUTDATED|The other participant does not use an up to date telegram client with support for calls|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|403|USER_IS_BLOCKED|You were blocked by this user|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v81/methods/phone_saveCallDebug.md b/old_docs/API_docs_v81/methods/phone_saveCallDebug.md
index 8acbc353..1e793c05 100644
--- a/old_docs/API_docs_v81/methods/phone_saveCallDebug.md
+++ b/old_docs/API_docs_v81/methods/phone_saveCallDebug.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = phone.saveCallDebug({peer=InputPhoneCall, debug=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
-|DATA_JSON_INVALID|The provided JSON data is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|DATA_JSON_INVALID|The provided JSON data is invalid|
diff --git a/old_docs/API_docs_v81/methods/phone_setCallRating.md b/old_docs/API_docs_v81/methods/phone_setCallRating.md
index 9bc6bdd0..9daed209 100644
--- a/old_docs/API_docs_v81/methods/phone_setCallRating.md
+++ b/old_docs/API_docs_v81/methods/phone_setCallRating.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Updates = phone.setCallRating({peer=InputPhoneCall, rating=int, comment='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v81/methods/photos_getUserPhotos.md b/old_docs/API_docs_v81/methods/photos_getUserPhotos.md
index 57f5772b..a01f3180 100644
--- a/old_docs/API_docs_v81/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v81/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v81/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v81/methods/photos_updateProfilePhoto.md
index cca2fe30..f7c91ec6 100644
--- a/old_docs/API_docs_v81/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v81/methods/photos_updateProfilePhoto.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v81/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v81/methods/photos_uploadProfilePhoto.md
index 457bade8..badde2de 100644
--- a/old_docs/API_docs_v81/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v81/methods/photos_uploadProfilePhoto.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v81/methods/stickers_addStickerToSet.md b/old_docs/API_docs_v81/methods/stickers_addStickerToSet.md
index 78e8437c..b1fa2aad 100644
--- a/old_docs/API_docs_v81/methods/stickers_addStickerToSet.md
+++ b/old_docs/API_docs_v81/methods/stickers_addStickerToSet.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.addStickerToSet({stickerset=InputStickerSet, sticker=InputStickerSetItem, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v81/methods/stickers_changeStickerPosition.md b/old_docs/API_docs_v81/methods/stickers_changeStickerPosition.md
index cddc1cbb..98dde67e 100644
--- a/old_docs/API_docs_v81/methods/stickers_changeStickerPosition.md
+++ b/old_docs/API_docs_v81/methods/stickers_changeStickerPosition.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.changeStickerPosition({sticker=InputDocument, position=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/old_docs/API_docs_v81/methods/stickers_createStickerSet.md b/old_docs/API_docs_v81/methods/stickers_createStickerSet.md
index 41e4ad11..741e0ad6 100644
--- a/old_docs/API_docs_v81/methods/stickers_createStickerSet.md
+++ b/old_docs/API_docs_v81/methods/stickers_createStickerSet.md
@@ -46,18 +46,18 @@ Or, if you're into Lua:
messages_StickerSet = stickers.createStickerSet({masks=Bool, user_id=InputUser, title='string', short_name='string', stickers={InputStickerSetItem}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|PACK_SHORT_NAME_INVALID|Short pack name invalid|
-|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|STICKER_EMOJI_INVALID|Sticker emoji invalid|
-|STICKER_FILE_INVALID|Sticker file invalid|
-|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
-|STICKERS_EMPTY|No sticker provided|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|PACK_SHORT_NAME_INVALID|Short pack name invalid|
+|400|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|STICKER_EMOJI_INVALID|Sticker emoji invalid|
+|400|STICKER_FILE_INVALID|Sticker file invalid|
+|400|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
+|400|STICKERS_EMPTY|No sticker provided|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v81/methods/stickers_removeStickerFromSet.md b/old_docs/API_docs_v81/methods/stickers_removeStickerFromSet.md
index ea4621f2..d1fc4339 100644
--- a/old_docs/API_docs_v81/methods/stickers_removeStickerFromSet.md
+++ b/old_docs/API_docs_v81/methods/stickers_removeStickerFromSet.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.removeStickerFromSet({sticker=InputDocument, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/old_docs/API_docs_v81/methods/updates_getChannelDifference.md b/old_docs/API_docs_v81/methods/updates_getChannelDifference.md
index 6fa79529..9735c14a 100644
--- a/old_docs/API_docs_v81/methods/updates_getChannelDifference.md
+++ b/old_docs/API_docs_v81/methods/updates_getChannelDifference.md
@@ -7,8 +7,56 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|force|[Bool](../types/Bool.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|filter|[ChannelMessagesFilter](../types/ChannelMessagesFilter.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_ChannelDifference](../types/updates_ChannelDifference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_ChannelDifference = $MadelineProto->updates->getChannelDifference(['force' => Bool, 'channel' => InputChannel, 'filter' => ChannelMessagesFilter, 'pts' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_ChannelDifference = updates.getChannelDifference({force=Bool, channel=InputChannel, filter=ChannelMessagesFilter, pts=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|400|RANGES_INVALID|Invalid range provided|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v81/methods/updates_getDifference.md b/old_docs/API_docs_v81/methods/updates_getDifference.md
index 33e7d7f2..bcfac4e2 100644
--- a/old_docs/API_docs_v81/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v81/methods/updates_getDifference.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|pts\_total\_limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'pts_total_limit' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, pts_total_limit=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v81/methods/updates_getState.md b/old_docs/API_docs_v81/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v81/methods/updates_getState.md
+++ b/old_docs/API_docs_v81/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v81/methods/upload_getCdnFile.md b/old_docs/API_docs_v81/methods/upload_getCdnFile.md
index 5e5b3f43..be9ad311 100644
--- a/old_docs/API_docs_v81/methods/upload_getCdnFile.md
+++ b/old_docs/API_docs_v81/methods/upload_getCdnFile.md
@@ -7,8 +7,40 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_CdnFile](../types/upload_CdnFile.md)
+
+### Can bots use this method: **NO**
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_CdnFile = $MadelineProto->upload->getCdnFile(['file_token' => 'bytes', 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_CdnFile = upload.getCdnFile({file_token='bytes', offset=int, limit=int, })
+```
+
diff --git a/old_docs/API_docs_v81/methods/upload_getCdnFileHashes.md b/old_docs/API_docs_v81/methods/upload_getCdnFileHashes.md
index ea6a8e75..d957578e 100644
--- a/old_docs/API_docs_v81/methods/upload_getCdnFileHashes.md
+++ b/old_docs/API_docs_v81/methods/upload_getCdnFileHashes.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->getCdnFileHashes(['file_token' => 'bytes', 'offset' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.getCdnFileHashes({file_token='bytes', offset=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/old_docs/API_docs_v81/methods/upload_getFile.md b/old_docs/API_docs_v81/methods/upload_getFile.md
index c72e6090..d8b433d6 100644
--- a/old_docs/API_docs_v81/methods/upload_getFile.md
+++ b/old_docs/API_docs_v81/methods/upload_getFile.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v81/methods/upload_getFileHashes.md b/old_docs/API_docs_v81/methods/upload_getFileHashes.md
index debeb60d..e03dd5c5 100644
--- a/old_docs/API_docs_v81/methods/upload_getFileHashes.md
+++ b/old_docs/API_docs_v81/methods/upload_getFileHashes.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+Get file hashes
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | The file | Yes|
+|offset|[int](../types/int.md) | Offset | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->getFileHashes(['location' => InputFileLocation, 'offset' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.getFileHashes({location=InputFileLocation, offset=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LOCATION_INVALID|The provided location is invalid|
diff --git a/old_docs/API_docs_v81/methods/upload_getWebFile.md b/old_docs/API_docs_v81/methods/upload_getWebFile.md
index 21179a66..7b63f96c 100644
--- a/old_docs/API_docs_v81/methods/upload_getWebFile.md
+++ b/old_docs/API_docs_v81/methods/upload_getWebFile.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
upload_WebFile = upload.getWebFile({location=InputWebFileLocation, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LOCATION_INVALID|The provided location is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LOCATION_INVALID|The provided location is invalid|
diff --git a/old_docs/API_docs_v81/methods/upload_reuploadCdnFile.md b/old_docs/API_docs_v81/methods/upload_reuploadCdnFile.md
index cc20d5e3..f531557c 100644
--- a/old_docs/API_docs_v81/methods/upload_reuploadCdnFile.md
+++ b/old_docs/API_docs_v81/methods/upload_reuploadCdnFile.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|request\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->reuploadCdnFile(['file_token' => 'bytes', 'request_token' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.reuploadCdnFile({file_token='bytes', request_token='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/old_docs/API_docs_v81/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v81/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v81/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v81/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v81/methods/upload_saveFilePart.md b/old_docs/API_docs_v81/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v81/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v81/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v81/methods/users_getFullUser.md b/old_docs/API_docs_v81/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v81/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v81/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v81/methods/users_getUsers.md b/old_docs/API_docs_v81/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v81/methods/users_getUsers.md
+++ b/old_docs/API_docs_v81/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v81/methods/users_setSecureValueErrors.md b/old_docs/API_docs_v81/methods/users_setSecureValueErrors.md
index 40e398ab..661137fb 100644
--- a/old_docs/API_docs_v81/methods/users_setSecureValueErrors.md
+++ b/old_docs/API_docs_v81/methods/users_setSecureValueErrors.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = users.setSecureValueErrors({id=InputUser, errors={SecureValueError}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v82/methods/README.md b/old_docs/API_docs_v82/methods/README.md
index e8c5faae..a161eab6 100644
--- a/old_docs/API_docs_v82/methods/README.md
+++ b/old_docs/API_docs_v82/methods/README.md
@@ -30,473 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Accept telegram passport authorization: account.acceptAuthorization
-
-* Accept telegram's TOS: help.acceptTermsOfService
-
-* Add a sticker set: messages.installStickerSet
-
-* Add a sticker to favorites: messages.faveSticker
-
-* Add a sticker to recent stickers: messages.saveRecentSticker
-
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add phone number as contact: contacts.importContacts
-
-* Add sticker to stickerset: stickers.addStickerToSet
-
-* Add users to channel/supergroup: channels.inviteToChannel
-
-* Allow or disallow any user to invite users to this channel/supergroup: channels.toggleInvites
-
-* Block a user: contacts.block
-
-* Bots only: get telegram passport authorization form: account.getAuthorizationForm
-
-* Bots only: send payment form: payments.sendPaymentForm
-
-* Bots only: set precheckout results: messages.setBotPrecheckoutResults
-
-* Bots only: set shipping results: messages.setBotShippingResults
-
-* Bots only: set the callback answer (after a button was clicked): messages.setBotCallbackAnswer
-
-* Bots only: set the results of an inline query: messages.setInlineBotResults
-
-* Call inline bot: messages.getInlineBotResults
-
-* Change notification settings: account.updateNotifySettings
-
-* Change sticker position in photo: stickers.changeStickerPosition
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if about to edit a message or a media caption: messages.getMessageEditData
-
-* Check if an invitation link is valid: messages.checkChatInvite
-
-* Check if this username is available: account.checkUsername
-
-* Check if this username is free and can be assigned to a channel/supergroup: channels.checkUsername
-
-* Clear all recent stickers: messages.clearRecentStickers
-
-* Clear saved payments info: payments.clearSavedInfo
-
-* Confirm this phone number is associated to this account, obtain phone_code_hash from sendConfirmPhoneCode: account.confirmPhone
-
-* Convert chat to supergroup: messages.migrateChat
-
-* Create a chat (not supergroup): messages.createChat
-
-* Create channel/supergroup: channels.createChannel
-
-* Create stickerset: stickers.createStickerSet
-
-* Delete a certain session: account.resetAuthorization
-
-* Delete a certain telegram web login authorization: account.resetWebAuthorization
-
-* Delete a channel/supergroup: channels.deleteChannel
-
-* Delete a contact: contacts.deleteContact
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete all messages of a user in a channel/supergroup: channels.deleteUserHistory
-
-* Delete all temporary authorization keys except the ones provided: auth.dropTempAuthKeys
-
-* Delete channel/supergroup messages: channels.deleteMessages
-
-* Delete chat history: messages.deleteHistory
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete secure telegram passport value: account.deleteSecureValue
-
-* Delete the history of a supergroup/channel: channels.deleteHistory
-
-* Delete this account: account.deleteAccount
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Download a file through telegram: upload.getWebFile
-
-* Edit a message: messages.editMessage
-
-* Edit a sent inline message: messages.editInlineBotMessage
-
-* Edit admin permissions of a user in a channel/supergroup: channels.editAdmin
-
-* Edit admin permissions: messages.editChatAdmin
-
-* Edit the about text of a channel/supergroup: channels.editAbout
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the photo of a supergroup/channel: channels.editPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Edit the title of a supergroup/channel: channels.editTitle
-
-* Enable all users are admins in normal groups (not supergroups): messages.toggleChatAdmins
-
-* Enable or disable hidden history for new channel/supergroup users: channels.togglePreHistoryHidden
-
-* Export chat invite : messages.exportChatInvite
-
-* Export contact as card: contacts.exportCard
-
-* Export the invite link of a channel: channels.exportInvite
-
-* Find a sticker set: messages.searchStickerSets
-
-* Finish account exporting session: account.finishTakeoutSession
-
-* Forward messages: messages.forwardMessages
-
-* Get CDN configuration: help.getCdnConfig
-
-* Get a stickerset: messages.getStickerSet
-
-* Get account TTL: account.getAccountTTL
-
-* Get admin log of a channel/supergroup: channels.getAdminLog
-
-* Get all archived stickers: messages.getArchivedStickers
-
-* Get all channels you left: channels.getLeftChannels
-
-* Get all chats (not supergroups or channels): messages.getAllChats
-
-* Get all contacts: contacts.getContacts
-
-* Get all logged-in authorizations: account.getAuthorizations
-
-* Get all message drafts: messages.getAllDrafts
-
-* Get all secure telegram passport values: account.getAllSecureValues
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get all supergroups/channels where you're admin: channels.getAdminedPublicChannels
-
-* Get and increase message views: messages.getMessagesViews
-
-* Get available languages: langpack.getLanguages
-
-* Get blocked users: contacts.getBlocked
-
-* Get call configuration: phone.getCallConfig
-
-* Get channel/supergroup messages: channels.getMessages
-
-* Get channel/supergroup participants (you should use `$MadelineProto->get_pwr_chat($id)` instead): channels.getParticipants
-
-* Get chats in common with a user: messages.getCommonChats
-
-* Get deep link info: help.getDeepLinkInfo
-
-* Get dialog info of peers: messages.getPeerDialogs
-
-* Get dialogs marked as unread manually: messages.getDialogUnreadMarks
-
-* Get document by SHA256 hash: messages.getDocumentByHash
-
-* Get favorite stickers: messages.getFavedStickers
-
-* Get featured stickers: messages.getFeaturedStickers
-
-* Get high scores of a game sent in an inline message: messages.getInlineGameHighScores
-
-* Get high scores of a game: messages.getGameHighScores
-
-* Get info about a certain channel/supergroup participant: channels.getParticipant
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about multiple channels/supergroups: channels.getChannels
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get information about the current proxy: help.getProxyData
-
-* Get invitation text: help.getInviteText
-
-* Get language pack strings: langpack.getStrings
-
-* Get language pack updates: langpack.getDifference
-
-* Get language pack: langpack.getLangPack
-
-* Get masks: messages.getMaskStickers
-
-* Get message ranges to fetch: messages.getSplitRanges
-
-* Get messages: messages.getMessages
-
-* Get most used chats: contacts.getTopPeers
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get payment form: payments.getPaymentForm
-
-* Get payment receipt: payments.getPaymentReceipt
-
-* Get pinned dialogs: messages.getPinnedDialogs
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get recent locations: messages.getRecentLocations
-
-* Get recent stickers: messages.getRecentStickers
-
-* Get recent t.me URLs: help.getRecentMeUrls
-
-* Get saved contacts: contacts.getSaved
-
-* Get saved gifs: messages.getSavedGifs
-
-* Get saved payments info: payments.getSavedInfo
-
-* Get secure value for telegram passport: account.getSecureValue
-
-* Get server configuration: help.getConfig
-
-* Get stickers attachable to images: messages.getAttachedStickers
-
-* Get stickers: messages.getStickers
-
-* Get telegram web login authorizations: account.getWebAuthorizations
-
-* Get temporary password for buying products through bots: account.getTmpPassword
-
-* Get the callback answer of a bot (after clicking a button): messages.getBotCallbackAnswer
-
-* Get the changelog of this app: help.getAppChangelog
-
-* Get the current password: account.getPassword
-
-* Get the link of a message in a channel: channels.exportMessageLink
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Get the settings of apeer: messages.getPeerSettings
-
-* Get unread mentions: messages.getUnreadMentions
-
-* Get updated TOS: help.getTermsOfServiceUpdate
-
-* Get webpage preview: messages.getWebPage
-
-* Get webpage preview: messages.getWebPagePreview
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Global message search: messages.searchGlobal
-
-* Hide report spam popup: messages.hideReportSpam
-
-* Import card as contact: contacts.importCard
-
-* Import chat invite: messages.importChatInvite
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Invalidate sent phone code: auth.cancelCode
-
-* Invoke method from takeout session: invokeWithTakeout
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invoke with messages range: invokeWithMessagesRange
-
-* Invoke with method without returning updates in the socket: invokeWithoutUpdates
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Join a channel/supergroup: channels.joinChannel
-
-* Kick or ban a user from a channel/supergroup: channels.editBanned
-
-* Leave a channel/supergroup: channels.leaveChannel
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark channel/supergroup history as read: channels.readHistory
-
-* Mark channel/supergroup messages as read: channels.readMessageContents
-
-* Mark dialog as unread : messages.markDialogUnread
-
-* Mark mentions as read: messages.readMentions
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Mark new featured stickers as read: messages.readFeaturedStickers
-
-* Notify server that you received a call (server will refuse all incoming calls until the current call is over): phone.receivedCall
-
-* Pin or unpin dialog: messages.toggleDialogPin
-
-* Register device for push notifications: account.registerDevice
-
-* Remove a sticker set: messages.uninstallStickerSet
-
-* Remove sticker from stickerset: stickers.removeStickerFromSet
-
-* Reorder pinned dialogs: messages.reorderPinnedDialogs
-
-* Reorder sticker sets: messages.reorderStickerSets
-
-* Report a message in a supergroup/channel for spam: channels.reportSpam
-
-* Report a message: messages.report
-
-* Report a peer for spam: messages.reportSpam
-
-* Report for spam a secret chat: messages.reportEncryptedSpam
-
-* Report for spam: account.reportPeer
-
-* Resend the SMS verification code: auth.resendCode
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Reset all telegram web login authorizations: account.resetWebAuthorizations
-
-* Reset saved contacts: contacts.resetSaved
-
-* Reset top peer rating for a certain category/peer: contacts.resetTopPeerRating
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Save a GIF: messages.saveGif
-
-* Save a message draft: messages.saveDraft
-
-* Save call debugging info: phone.saveCallDebug
-
-* Save telegram passport secure value: account.saveSecureValue
-
-* Search contacts: contacts.search
-
-* Search gifs: messages.searchGifs
-
-* Search peers or messages: messages.search
-
-* Send a custom request to the bot API: bots.sendCustomRequest
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send an album: messages.sendMultiMedia
-
-* Send an email to recover the 2FA password: auth.requestPasswordRecovery
-
-* Send confirmation phone code: account.sendConfirmPhoneCode
-
-* Send email verification code: account.sendVerifyEmailCode
-
-* Send inline bot result obtained with messages.getInlineBotResults to the chat: messages.sendInlineBotResult
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send phone verification code: account.sendVerifyPhoneCode
-
-* Send screenshot notification: messages.sendScreenshotNotification
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Send webhook request via bot API: bots.answerWebhookJSONQuery
-
-* Set account TTL: account.setAccountTTL
-
-* Set phone call rating: phone.setCallRating
-
-* Set privacy settings: account.setPrivacy
-
-* Set secure value error for telegram passport: users.setSecureValueErrors
-
-* Set the game score of an inline message: messages.setInlineGameScore
-
-* Set the game score: messages.setGameScore
-
-* Set the pinned message of a channel/supergroup: channels.updatePinnedMessage
-
-* Set the supergroup/channel stickerpack: channels.setStickers
-
-* Set the update status of webhook: help.setBotUpdatesStatus
-
-* Start a bot: messages.startBot
-
-* Start account exporting session: account.initTakeoutSession
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Toggle channel signatures: channels.toggleSignatures
-
-* Toggle top peers: contacts.toggleTopPeers
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update profile info: account.updateProfile
-
-* Update the username of a supergroup/channel: channels.updateUsername
-
-* Update this user's username: account.updateUsername
-
-* Upload a file without sending it to anyone: messages.uploadMedia
-
-* Upload a secret chat file without sending it to anyone: messages.uploadEncryptedFile
-
-* Upload profile photo: photos.uploadProfilePhoto
-
-* Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
-
-* Validate requested payment info: payments.validateRequestedInfo
-
-* Verify email address: account.verifyEmail
-
-* Verify phone number: account.verifyPhone
-
diff --git a/old_docs/API_docs_v82/methods/account_changePhone.md b/old_docs/API_docs_v82/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/old_docs/API_docs_v82/methods/account_changePhone.md
+++ b/old_docs/API_docs_v82/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v82/methods/account_checkUsername.md b/old_docs/API_docs_v82/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v82/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v82/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v82/methods/account_confirmPhone.md b/old_docs/API_docs_v82/methods/account_confirmPhone.md
index b730c2dc..c114cd20 100644
--- a/old_docs/API_docs_v82/methods/account_confirmPhone.md
+++ b/old_docs/API_docs_v82/methods/account_confirmPhone.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = account.confirmPhone({phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_HASH_INVALID|Code hash invalid|
-|PHONE_CODE_EMPTY|phone_code is missing|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_HASH_INVALID|Code hash invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
diff --git a/old_docs/API_docs_v82/methods/account_getNotifySettings.md b/old_docs/API_docs_v82/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v82/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v82/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v82/methods/account_getPasswordSettings.md b/old_docs/API_docs_v82/methods/account_getPasswordSettings.md
index 8ebb78ee..8f878365 100644
--- a/old_docs/API_docs_v82/methods/account_getPasswordSettings.md
+++ b/old_docs/API_docs_v82/methods/account_getPasswordSettings.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+Get the current 2FA settings
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+### Return type: [account\_PasswordSettings](../types/account_PasswordSettings.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$account_PasswordSettings = $MadelineProto->account->getPasswordSettings(['current_password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+account_PasswordSettings = account.getPasswordSettings({current_password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v82/methods/account_getPrivacy.md b/old_docs/API_docs_v82/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/old_docs/API_docs_v82/methods/account_getPrivacy.md
+++ b/old_docs/API_docs_v82/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v82/methods/account_getTmpPassword.md b/old_docs/API_docs_v82/methods/account_getTmpPassword.md
index fd8314ee..a74d0f5a 100644
--- a/old_docs/API_docs_v82/methods/account_getTmpPassword.md
+++ b/old_docs/API_docs_v82/methods/account_getTmpPassword.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
account_TmpPassword = account.getTmpPassword({password_hash='bytes', period=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_HASH_INVALID|The provided password hash is invalid|
-|TMP_PASSWORD_DISABLED|The temporary password is disabled|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
+|400|TMP_PASSWORD_DISABLED|The temporary password is disabled|
diff --git a/old_docs/API_docs_v82/methods/account_registerDevice.md b/old_docs/API_docs_v82/methods/account_registerDevice.md
index 7c34f6c4..a8e8c2a2 100644
--- a/old_docs/API_docs_v82/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v82/methods/account_registerDevice.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({token_type=int, token='string', app_sandbox=Bool, secret='bytes', other_uids={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v82/methods/account_reportPeer.md b/old_docs/API_docs_v82/methods/account_reportPeer.md
index a203c900..87b080eb 100644
--- a/old_docs/API_docs_v82/methods/account_reportPeer.md
+++ b/old_docs/API_docs_v82/methods/account_reportPeer.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.reportPeer({peer=InputPeer, reason=ReportReason, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v82/methods/account_resetAuthorization.md b/old_docs/API_docs_v82/methods/account_resetAuthorization.md
index c950992c..e8e8ecc4 100644
--- a/old_docs/API_docs_v82/methods/account_resetAuthorization.md
+++ b/old_docs/API_docs_v82/methods/account_resetAuthorization.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.resetAuthorization({hash=long, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v82/methods/account_sendChangePhoneCode.md b/old_docs/API_docs_v82/methods/account_sendChangePhoneCode.md
index d5be60ef..08e5e86e 100644
--- a/old_docs/API_docs_v82/methods/account_sendChangePhoneCode.md
+++ b/old_docs/API_docs_v82/methods/account_sendChangePhoneCode.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendChangePhoneCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v82/methods/account_sendConfirmPhoneCode.md b/old_docs/API_docs_v82/methods/account_sendConfirmPhoneCode.md
index 028a1fdc..9fa7b57e 100644
--- a/old_docs/API_docs_v82/methods/account_sendConfirmPhoneCode.md
+++ b/old_docs/API_docs_v82/methods/account_sendConfirmPhoneCode.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendConfirmPhoneCode({allow_flashcall=Bool, hash='string', current_number=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v82/methods/account_setAccountTTL.md b/old_docs/API_docs_v82/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/old_docs/API_docs_v82/methods/account_setAccountTTL.md
+++ b/old_docs/API_docs_v82/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/old_docs/API_docs_v82/methods/account_setPrivacy.md b/old_docs/API_docs_v82/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/old_docs/API_docs_v82/methods/account_setPrivacy.md
+++ b/old_docs/API_docs_v82/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v82/methods/account_unregisterDevice.md b/old_docs/API_docs_v82/methods/account_unregisterDevice.md
index 13d11e88..e39f0811 100644
--- a/old_docs/API_docs_v82/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v82/methods/account_unregisterDevice.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', other_uids={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v82/methods/account_updateNotifySettings.md b/old_docs/API_docs_v82/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v82/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v82/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v82/methods/account_updatePasswordSettings.md b/old_docs/API_docs_v82/methods/account_updatePasswordSettings.md
index 80f27228..68e5da6d 100644
--- a/old_docs/API_docs_v82/methods/account_updatePasswordSettings.md
+++ b/old_docs/API_docs_v82/methods/account_updatePasswordSettings.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|current\_password\_hash|[bytes](../types/bytes.md) | Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` | Yes|
+|new\_settings|[account\_PasswordInputSettings](../types/account_PasswordInputSettings.md) | New 2FA settings | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->account->updatePasswordSettings(['current_password_hash' => 'bytes', 'new_settings' => account_PasswordInputSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = account.updatePasswordSettings({current_password_hash='bytes', new_settings=account_PasswordInputSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EMAIL_UNCONFIRMED|Email unconfirmed|
+|400|EMAIL_UNCONFIRMED_X|The provided email isn't confirmed, X is the length of the verification code that was just sent to the email.|
+|400|NEW_SALT_INVALID|The new salt is invalid|
+|400|NEW_SETTINGS_INVALID|The new settings are invalid|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v82/methods/account_updateProfile.md b/old_docs/API_docs_v82/methods/account_updateProfile.md
index af5b6a0f..0d74c5e5 100644
--- a/old_docs/API_docs_v82/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v82/methods/account_updateProfile.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v82/methods/account_updateStatus.md b/old_docs/API_docs_v82/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v82/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v82/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v82/methods/account_updateUsername.md b/old_docs/API_docs_v82/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v82/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v82/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v82/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v82/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v82/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v82/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v82/methods/auth_cancelCode.md b/old_docs/API_docs_v82/methods/auth_cancelCode.md
index fcbd7713..a69e0118 100644
--- a/old_docs/API_docs_v82/methods/auth_cancelCode.md
+++ b/old_docs/API_docs_v82/methods/auth_cancelCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = auth.cancelCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v82/methods/auth_checkPassword.md b/old_docs/API_docs_v82/methods/auth_checkPassword.md
index 8d76c483..db65cb56 100644
--- a/old_docs/API_docs_v82/methods/auth_checkPassword.md
+++ b/old_docs/API_docs_v82/methods/auth_checkPassword.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->checkPassword(['password_hash' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.checkPassword({password_hash='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v82/methods/auth_exportAuthorization.md b/old_docs/API_docs_v82/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v82/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v82/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v82/methods/auth_importAuthorization.md b/old_docs/API_docs_v82/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v82/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v82/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v82/methods/auth_importBotAuthorization.md b/old_docs/API_docs_v82/methods/auth_importBotAuthorization.md
index 1a98c1b9..98a2f8ca 100644
--- a/old_docs/API_docs_v82/methods/auth_importBotAuthorization.md
+++ b/old_docs/API_docs_v82/methods/auth_importBotAuthorization.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|api\_id|[int](../types/int.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_hash|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|bot\_auth\_token|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importBotAuthorization(['api_id' => int, 'api_hash' => 'string', 'bot_auth_token' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importBotAuthorization({api_id=int, api_hash='string', bot_auth_token='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ACCESS_TOKEN_EXPIRED|Access token expired|
+|400|ACCESS_TOKEN_INVALID|Access token invalid|
+|400|API_ID_INVALID|API ID invalid|
diff --git a/old_docs/API_docs_v82/methods/auth_logOut.md b/old_docs/API_docs_v82/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v82/methods/auth_logOut.md
+++ b/old_docs/API_docs_v82/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v82/methods/auth_recoverPassword.md b/old_docs/API_docs_v82/methods/auth_recoverPassword.md
index 83ff5aed..d4bad9c5 100644
--- a/old_docs/API_docs_v82/methods/auth_recoverPassword.md
+++ b/old_docs/API_docs_v82/methods/auth_recoverPassword.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
auth_Authorization = auth.recoverPassword({code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_EMPTY|The provided code is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_EMPTY|The provided code is empty|
diff --git a/old_docs/API_docs_v82/methods/auth_requestPasswordRecovery.md b/old_docs/API_docs_v82/methods/auth_requestPasswordRecovery.md
index 1864bbb0..b6ad57ba 100644
--- a/old_docs/API_docs_v82/methods/auth_requestPasswordRecovery.md
+++ b/old_docs/API_docs_v82/methods/auth_requestPasswordRecovery.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
auth_PasswordRecovery = auth.requestPasswordRecovery({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_EMPTY|The provided password is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_EMPTY|The provided password is empty|
diff --git a/old_docs/API_docs_v82/methods/auth_resendCode.md b/old_docs/API_docs_v82/methods/auth_resendCode.md
index ff7868ea..ec730d75 100644
--- a/old_docs/API_docs_v82/methods/auth_resendCode.md
+++ b/old_docs/API_docs_v82/methods/auth_resendCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = auth.resendCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v82/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v82/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v82/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v82/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v82/methods/auth_sendCode.md b/old_docs/API_docs_v82/methods/auth_sendCode.md
index 9afebb55..1e9d1a4e 100644
--- a/old_docs/API_docs_v82/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v82/methods/auth_sendCode.md
@@ -7,8 +7,59 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|allow\_flashcall|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|current\_number|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['allow_flashcall' => Bool, 'phone_number' => 'string', 'current_number' => Bool, 'api_id' => int, 'api_hash' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, api_id=int, api_hash='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v82/methods/auth_signIn.md b/old_docs/API_docs_v82/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v82/methods/auth_signIn.md
+++ b/old_docs/API_docs_v82/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v82/methods/auth_signUp.md b/old_docs/API_docs_v82/methods/auth_signUp.md
index 15960145..31154486 100644
--- a/old_docs/API_docs_v82/methods/auth_signUp.md
+++ b/old_docs/API_docs_v82/methods/auth_signUp.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', phone_code='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v82/methods/bots_answerWebhookJSONQuery.md b/old_docs/API_docs_v82/methods/bots_answerWebhookJSONQuery.md
index ae0fa6d9..f2233514 100644
--- a/old_docs/API_docs_v82/methods/bots_answerWebhookJSONQuery.md
+++ b/old_docs/API_docs_v82/methods/bots_answerWebhookJSONQuery.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = bots.answerWebhookJSONQuery({query_id=long, data=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v82/methods/bots_sendCustomRequest.md b/old_docs/API_docs_v82/methods/bots_sendCustomRequest.md
index c1fd8183..8a6a2df5 100644
--- a/old_docs/API_docs_v82/methods/bots_sendCustomRequest.md
+++ b/old_docs/API_docs_v82/methods/bots_sendCustomRequest.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
DataJSON = bots.sendCustomRequest({custom_method='string', params=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v82/methods/channels_checkUsername.md b/old_docs/API_docs_v82/methods/channels_checkUsername.md
index 483a2f6f..52365d34 100644
--- a/old_docs/API_docs_v82/methods/channels_checkUsername.md
+++ b/old_docs/API_docs_v82/methods/channels_checkUsername.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Bool = channels.checkUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v82/methods/channels_createChannel.md b/old_docs/API_docs_v82/methods/channels_createChannel.md
index b924e6a6..ecaee0ef 100644
--- a/old_docs/API_docs_v82/methods/channels_createChannel.md
+++ b/old_docs/API_docs_v82/methods/channels_createChannel.md
@@ -45,12 +45,12 @@ Or, if you're into Lua:
Updates = channels.createChannel({broadcast=Bool, megagroup=Bool, title='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_TITLE_EMPTY|No chat title provided|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
+|406|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v82/methods/channels_deleteChannel.md b/old_docs/API_docs_v82/methods/channels_deleteChannel.md
index 53a9c23d..1b8d2d48 100644
--- a/old_docs/API_docs_v82/methods/channels_deleteChannel.md
+++ b/old_docs/API_docs_v82/methods/channels_deleteChannel.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Updates = channels.deleteChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v82/methods/channels_deleteMessages.md b/old_docs/API_docs_v82/methods/channels_deleteMessages.md
index f76a9ad1..463ebad0 100644
--- a/old_docs/API_docs_v82/methods/channels_deleteMessages.md
+++ b/old_docs/API_docs_v82/methods/channels_deleteMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_AffectedMessages = channels.deleteMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v82/methods/channels_deleteUserHistory.md b/old_docs/API_docs_v82/methods/channels_deleteUserHistory.md
index 0a4e7d82..33905a7e 100644
--- a/old_docs/API_docs_v82/methods/channels_deleteUserHistory.md
+++ b/old_docs/API_docs_v82/methods/channels_deleteUserHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedHistory = channels.deleteUserHistory({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v82/methods/channels_editAbout.md b/old_docs/API_docs_v82/methods/channels_editAbout.md
index 47111668..d5e090e0 100644
--- a/old_docs/API_docs_v82/methods/channels_editAbout.md
+++ b/old_docs/API_docs_v82/methods/channels_editAbout.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Bool = channels.editAbout({channel=InputChannel, about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
-|CHAT_ABOUT_TOO_LONG|Chat about too long|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
+|400|CHAT_ABOUT_TOO_LONG|Chat about too long|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v82/methods/channels_editAdmin.md b/old_docs/API_docs_v82/methods/channels_editAdmin.md
index 43858599..edb7cf55 100644
--- a/old_docs/API_docs_v82/methods/channels_editAdmin.md
+++ b/old_docs/API_docs_v82/methods/channels_editAdmin.md
@@ -44,19 +44,19 @@ Or, if you're into Lua:
Updates = channels.editAdmin({channel=InputChannel, user_id=InputUser, admin_rights=ChannelAdminRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ADMINS_TOO_MUCH|There are too many admins|
-|BOT_CHANNELS_NA|Bots can't edit admin privileges|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
-|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ADMINS_TOO_MUCH|There are too many admins|
+|400|BOT_CHANNELS_NA|Bots can't edit admin privileges|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
+|403|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v82/methods/channels_editBanned.md b/old_docs/API_docs_v82/methods/channels_editBanned.md
index cffb653e..1fd5f597 100644
--- a/old_docs/API_docs_v82/methods/channels_editBanned.md
+++ b/old_docs/API_docs_v82/methods/channels_editBanned.md
@@ -44,14 +44,14 @@ Or, if you're into Lua:
Updates = channels.editBanned({channel=InputChannel, user_id=InputUser, banned_rights=ChannelBannedRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ADMIN_INVALID|You're not an admin|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ADMIN_INVALID|You're not an admin|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v82/methods/channels_editPhoto.md b/old_docs/API_docs_v82/methods/channels_editPhoto.md
index bec0ba48..caef32d5 100644
--- a/old_docs/API_docs_v82/methods/channels_editPhoto.md
+++ b/old_docs/API_docs_v82/methods/channels_editPhoto.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editPhoto({channel=InputChannel, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|PHOTO_INVALID|Photo invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|PHOTO_INVALID|Photo invalid|
diff --git a/old_docs/API_docs_v82/methods/channels_editTitle.md b/old_docs/API_docs_v82/methods/channels_editTitle.md
index b5efeb39..d7cb33da 100644
--- a/old_docs/API_docs_v82/methods/channels_editTitle.md
+++ b/old_docs/API_docs_v82/methods/channels_editTitle.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editTitle({channel=InputChannel, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v82/methods/channels_exportInvite.md b/old_docs/API_docs_v82/methods/channels_exportInvite.md
index 0918b3e7..9d578deb 100644
--- a/old_docs/API_docs_v82/methods/channels_exportInvite.md
+++ b/old_docs/API_docs_v82/methods/channels_exportInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ExportedChatInvite = channels.exportInvite({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INVITE_HASH_EXPIRED|The invite link has expired|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
diff --git a/old_docs/API_docs_v82/methods/channels_exportMessageLink.md b/old_docs/API_docs_v82/methods/channels_exportMessageLink.md
index 5dea54a7..fc2f248b 100644
--- a/old_docs/API_docs_v82/methods/channels_exportMessageLink.md
+++ b/old_docs/API_docs_v82/methods/channels_exportMessageLink.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
ExportedMessageLink = channels.exportMessageLink({channel=InputChannel, id=int, grouped=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v82/methods/channels_getAdminLog.md b/old_docs/API_docs_v82/methods/channels_getAdminLog.md
index 377c7320..adb87748 100644
--- a/old_docs/API_docs_v82/methods/channels_getAdminLog.md
+++ b/old_docs/API_docs_v82/methods/channels_getAdminLog.md
@@ -48,12 +48,12 @@ Or, if you're into Lua:
channels_AdminLogResults = channels.getAdminLog({channel=InputChannel, q='string', events_filter=ChannelAdminLogEventsFilter, admins={InputUser}, max_id=long, min_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v82/methods/channels_getChannels.md b/old_docs/API_docs_v82/methods/channels_getChannels.md
index 78d50641..95d7a188 100644
--- a/old_docs/API_docs_v82/methods/channels_getChannels.md
+++ b/old_docs/API_docs_v82/methods/channels_getChannels.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = channels.getChannels({id={InputChannel}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v82/methods/channels_getFullChannel.md b/old_docs/API_docs_v82/methods/channels_getFullChannel.md
index 45a8ec72..ebd53de4 100644
--- a/old_docs/API_docs_v82/methods/channels_getFullChannel.md
+++ b/old_docs/API_docs_v82/methods/channels_getFullChannel.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->channels->getFullChannel(['channel' => InputChannel, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = channels.getFullChannel({channel=InputChannel, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v82/methods/channels_getLeftChannels.md b/old_docs/API_docs_v82/methods/channels_getLeftChannels.md
index 2d256964..fac7ae07 100644
--- a/old_docs/API_docs_v82/methods/channels_getLeftChannels.md
+++ b/old_docs/API_docs_v82/methods/channels_getLeftChannels.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_Chats = channels.getLeftChannels({offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TAKEOUT_REQUIRED|A takeout session has to be initialized, first|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|TAKEOUT_REQUIRED|A takeout session has to be initialized, first|
diff --git a/old_docs/API_docs_v82/methods/channels_getMessages.md b/old_docs/API_docs_v82/methods/channels_getMessages.md
index 90cf5a47..f1ae0a4d 100644
--- a/old_docs/API_docs_v82/methods/channels_getMessages.md
+++ b/old_docs/API_docs_v82/methods/channels_getMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_Messages = channels.getMessages({channel=InputChannel, id={InputMessage}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
diff --git a/old_docs/API_docs_v82/methods/channels_getParticipant.md b/old_docs/API_docs_v82/methods/channels_getParticipant.md
index 6633114f..808156fd 100644
--- a/old_docs/API_docs_v82/methods/channels_getParticipant.md
+++ b/old_docs/API_docs_v82/methods/channels_getParticipant.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
channels_ChannelParticipant = channels.getParticipant({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v82/methods/channels_getParticipants.md b/old_docs/API_docs_v82/methods/channels_getParticipants.md
index 5ff242e6..fb7a39df 100644
--- a/old_docs/API_docs_v82/methods/channels_getParticipants.md
+++ b/old_docs/API_docs_v82/methods/channels_getParticipants.md
@@ -46,14 +46,14 @@ Or, if you're into Lua:
channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, filter=ChannelParticipantsFilter, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v82/methods/channels_inviteToChannel.md b/old_docs/API_docs_v82/methods/channels_inviteToChannel.md
index f7093f13..d8c5e88a 100644
--- a/old_docs/API_docs_v82/methods/channels_inviteToChannel.md
+++ b/old_docs/API_docs_v82/methods/channels_inviteToChannel.md
@@ -43,25 +43,25 @@ Or, if you're into Lua:
Updates = channels.inviteToChannel({channel=InputChannel, users={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
-|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_BLOCKED|User blocked|
-|USER_BOT|Bots can only be admins in channels.|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_KICKED|This user was kicked from this supergroup/channel|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
+|400|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_BLOCKED|User blocked|
+|400|USER_BOT|Bots can only be admins in channels.|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_KICKED|This user was kicked from this supergroup/channel|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v82/methods/channels_joinChannel.md b/old_docs/API_docs_v82/methods/channels_joinChannel.md
index b056031a..a4a7c177 100644
--- a/old_docs/API_docs_v82/methods/channels_joinChannel.md
+++ b/old_docs/API_docs_v82/methods/channels_joinChannel.md
@@ -42,15 +42,15 @@ Or, if you're into Lua:
Updates = channels.joinChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
diff --git a/old_docs/API_docs_v82/methods/channels_leaveChannel.md b/old_docs/API_docs_v82/methods/channels_leaveChannel.md
index fdea13ba..6538d443 100644
--- a/old_docs/API_docs_v82/methods/channels_leaveChannel.md
+++ b/old_docs/API_docs_v82/methods/channels_leaveChannel.md
@@ -42,14 +42,14 @@ Or, if you're into Lua:
Updates = channels.leaveChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
-|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
diff --git a/old_docs/API_docs_v82/methods/channels_readHistory.md b/old_docs/API_docs_v82/methods/channels_readHistory.md
index 93dc075f..3532dae0 100644
--- a/old_docs/API_docs_v82/methods/channels_readHistory.md
+++ b/old_docs/API_docs_v82/methods/channels_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readHistory({channel=InputChannel, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v82/methods/channels_readMessageContents.md b/old_docs/API_docs_v82/methods/channels_readMessageContents.md
index 80ddf2b0..8cd8c620 100644
--- a/old_docs/API_docs_v82/methods/channels_readMessageContents.md
+++ b/old_docs/API_docs_v82/methods/channels_readMessageContents.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readMessageContents({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v82/methods/channels_reportSpam.md b/old_docs/API_docs_v82/methods/channels_reportSpam.md
index db80676a..7e273cc5 100644
--- a/old_docs/API_docs_v82/methods/channels_reportSpam.md
+++ b/old_docs/API_docs_v82/methods/channels_reportSpam.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
Bool = channels.reportSpam({channel=InputChannel, user_id=InputUser, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
diff --git a/old_docs/API_docs_v82/methods/channels_setStickers.md b/old_docs/API_docs_v82/methods/channels_setStickers.md
index 10cd68bf..c9b95527 100644
--- a/old_docs/API_docs_v82/methods/channels_setStickers.md
+++ b/old_docs/API_docs_v82/methods/channels_setStickers.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.setStickers({channel=InputChannel, stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PARTICIPANTS_TOO_FEW|Not enough participants|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PARTICIPANTS_TOO_FEW|Not enough participants|
diff --git a/old_docs/API_docs_v82/methods/channels_toggleInvites.md b/old_docs/API_docs_v82/methods/channels_toggleInvites.md
index e5d3fba1..6266d30b 100644
--- a/old_docs/API_docs_v82/methods/channels_toggleInvites.md
+++ b/old_docs/API_docs_v82/methods/channels_toggleInvites.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.toggleInvites({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v82/methods/channels_toggleSignatures.md b/old_docs/API_docs_v82/methods/channels_toggleSignatures.md
index cdfc0fda..f8624946 100644
--- a/old_docs/API_docs_v82/methods/channels_toggleSignatures.md
+++ b/old_docs/API_docs_v82/methods/channels_toggleSignatures.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = channels.toggleSignatures({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v82/methods/channels_updatePinnedMessage.md b/old_docs/API_docs_v82/methods/channels_updatePinnedMessage.md
index 53733a22..37d7c3c0 100644
--- a/old_docs/API_docs_v82/methods/channels_updatePinnedMessage.md
+++ b/old_docs/API_docs_v82/methods/channels_updatePinnedMessage.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = channels.updatePinnedMessage({silent=Bool, channel=InputChannel, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v82/methods/channels_updateUsername.md b/old_docs/API_docs_v82/methods/channels_updateUsername.md
index 677712f9..48d250e6 100644
--- a/old_docs/API_docs_v82/methods/channels_updateUsername.md
+++ b/old_docs/API_docs_v82/methods/channels_updateUsername.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Bool = channels.updateUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_OCCUPIED|The provided username is already occupied|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
diff --git a/old_docs/API_docs_v82/methods/contacts_block.md b/old_docs/API_docs_v82/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v82/methods/contacts_block.md
+++ b/old_docs/API_docs_v82/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v82/methods/contacts_deleteContact.md b/old_docs/API_docs_v82/methods/contacts_deleteContact.md
index ba9569e4..a9321d64 100644
--- a/old_docs/API_docs_v82/methods/contacts_deleteContact.md
+++ b/old_docs/API_docs_v82/methods/contacts_deleteContact.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
contacts_Link = contacts.deleteContact({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v82/methods/contacts_deleteContacts.md b/old_docs/API_docs_v82/methods/contacts_deleteContacts.md
index bfc91fdd..3c8e90f0 100644
--- a/old_docs/API_docs_v82/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v82/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v82/methods/contacts_getStatuses.md b/old_docs/API_docs_v82/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v82/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v82/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v82/methods/contacts_getTopPeers.md b/old_docs/API_docs_v82/methods/contacts_getTopPeers.md
index 4dc13d08..9ad9ab01 100644
--- a/old_docs/API_docs_v82/methods/contacts_getTopPeers.md
+++ b/old_docs/API_docs_v82/methods/contacts_getTopPeers.md
@@ -50,10 +50,10 @@ Or, if you're into Lua:
contacts_TopPeers = contacts.getTopPeers({correspondents=Bool, bots_pm=Bool, bots_inline=Bool, phone_calls=Bool, groups=Bool, channels=Bool, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TYPES_EMPTY|No top peer type was provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TYPES_EMPTY|No top peer type was provided|
diff --git a/old_docs/API_docs_v82/methods/contacts_importCard.md b/old_docs/API_docs_v82/methods/contacts_importCard.md
index 15addde1..ed3d17fe 100644
--- a/old_docs/API_docs_v82/methods/contacts_importCard.md
+++ b/old_docs/API_docs_v82/methods/contacts_importCard.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
User = contacts.importCard({export_card={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|EXPORT_CARD_INVALID|Provided card is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EXPORT_CARD_INVALID|Provided card is invalid|
diff --git a/old_docs/API_docs_v82/methods/contacts_resetTopPeerRating.md b/old_docs/API_docs_v82/methods/contacts_resetTopPeerRating.md
index 43cf1685..787be177 100644
--- a/old_docs/API_docs_v82/methods/contacts_resetTopPeerRating.md
+++ b/old_docs/API_docs_v82/methods/contacts_resetTopPeerRating.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = contacts.resetTopPeerRating({category=TopPeerCategory, peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v82/methods/contacts_resolveUsername.md b/old_docs/API_docs_v82/methods/contacts_resolveUsername.md
index fab56bb1..68f709db 100644
--- a/old_docs/API_docs_v82/methods/contacts_resolveUsername.md
+++ b/old_docs/API_docs_v82/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [contacts\_ResolvedPeer](../types/contacts_ResolvedPeer.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$contacts_ResolvedPeer = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+contacts_ResolvedPeer = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v82/methods/contacts_search.md b/old_docs/API_docs_v82/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v82/methods/contacts_search.md
+++ b/old_docs/API_docs_v82/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v82/methods/contacts_unblock.md b/old_docs/API_docs_v82/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v82/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v82/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v82/methods/help_getCdnConfig.md b/old_docs/API_docs_v82/methods/help_getCdnConfig.md
index 9e047a1d..ba526365 100644
--- a/old_docs/API_docs_v82/methods/help_getCdnConfig.md
+++ b/old_docs/API_docs_v82/methods/help_getCdnConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
CdnConfig = help.getCdnConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v82/methods/help_getConfig.md b/old_docs/API_docs_v82/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v82/methods/help_getConfig.md
+++ b/old_docs/API_docs_v82/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v82/methods/initConnection.md b/old_docs/API_docs_v82/methods/initConnection.md
index 69d29401..5c4bfab9 100644
--- a/old_docs/API_docs_v82/methods/initConnection.md
+++ b/old_docs/API_docs_v82/methods/initConnection.md
@@ -50,11 +50,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', system_lang_code='string', lang_pack='string', lang_code='string', proxy=InputClientProxy, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v82/methods/invokeWithLayer.md b/old_docs/API_docs_v82/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/old_docs/API_docs_v82/methods/invokeWithLayer.md
+++ b/old_docs/API_docs_v82/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v82/methods/langpack_getDifference.md b/old_docs/API_docs_v82/methods/langpack_getDifference.md
index ed7e4028..70295776 100644
--- a/old_docs/API_docs_v82/methods/langpack_getDifference.md
+++ b/old_docs/API_docs_v82/methods/langpack_getDifference.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getDifference({from_version=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v82/methods/langpack_getLangPack.md b/old_docs/API_docs_v82/methods/langpack_getLangPack.md
index 50684fef..de6ab2ab 100644
--- a/old_docs/API_docs_v82/methods/langpack_getLangPack.md
+++ b/old_docs/API_docs_v82/methods/langpack_getLangPack.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getLangPack({lang_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v82/methods/langpack_getLanguages.md b/old_docs/API_docs_v82/methods/langpack_getLanguages.md
index 7ffc0f3b..0b09a845 100644
--- a/old_docs/API_docs_v82/methods/langpack_getLanguages.md
+++ b/old_docs/API_docs_v82/methods/langpack_getLanguages.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_LangPackLanguage = langpack.getLanguages({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v82/methods/langpack_getStrings.md b/old_docs/API_docs_v82/methods/langpack_getStrings.md
index 1101ec91..3276120f 100644
--- a/old_docs/API_docs_v82/methods/langpack_getStrings.md
+++ b/old_docs/API_docs_v82/methods/langpack_getStrings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Vector_of_LangPackString = langpack.getStrings({lang_code='string', keys={'string'}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_acceptEncryption.md b/old_docs/API_docs_v82/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v82/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v82/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v82/methods/messages_addChatUser.md b/old_docs/API_docs_v82/methods/messages_addChatUser.md
index bc0d6253..b5e164b2 100644
--- a/old_docs/API_docs_v82/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v82/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
Updates = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v82/methods/messages_checkChatInvite.md b/old_docs/API_docs_v82/methods/messages_checkChatInvite.md
index de28b09b..0d13d55e 100644
--- a/old_docs/API_docs_v82/methods/messages_checkChatInvite.md
+++ b/old_docs/API_docs_v82/methods/messages_checkChatInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ChatInvite = messages.checkChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_createChat.md b/old_docs/API_docs_v82/methods/messages_createChat.md
index 8f6e9672..b2623f1d 100644
--- a/old_docs/API_docs_v82/methods/messages_createChat.md
+++ b/old_docs/API_docs_v82/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v82/methods/messages_deleteChatUser.md b/old_docs/API_docs_v82/methods/messages_deleteChatUser.md
index 63529571..11b9b220 100644
--- a/old_docs/API_docs_v82/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v82/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v82/methods/messages_deleteHistory.md b/old_docs/API_docs_v82/methods/messages_deleteHistory.md
index 2ade177e..338c2cdf 100644
--- a/old_docs/API_docs_v82/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v82/methods/messages_deleteHistory.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({just_clear=Bool, peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_deleteMessages.md b/old_docs/API_docs_v82/methods/messages_deleteMessages.md
index 4c65080a..41517dd0 100644
--- a/old_docs/API_docs_v82/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v82/methods/messages_deleteMessages.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.deleteMessages({revoke=Bool, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v82/methods/messages_discardEncryption.md b/old_docs/API_docs_v82/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v82/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v82/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_editChatAdmin.md b/old_docs/API_docs_v82/methods/messages_editChatAdmin.md
index 2b4dc94c..6f6c1376 100644
--- a/old_docs/API_docs_v82/methods/messages_editChatAdmin.md
+++ b/old_docs/API_docs_v82/methods/messages_editChatAdmin.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.editChatAdmin({chat_id=InputPeer, user_id=InputUser, is_admin=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_editChatPhoto.md b/old_docs/API_docs_v82/methods/messages_editChatPhoto.md
index 2a82c232..a21a03b9 100644
--- a/old_docs/API_docs_v82/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v82/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Updates = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_editChatTitle.md b/old_docs/API_docs_v82/methods/messages_editChatTitle.md
index 2c338ad6..72f78741 100644
--- a/old_docs/API_docs_v82/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v82/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v82/methods/messages_editInlineBotMessage.md b/old_docs/API_docs_v82/methods/messages_editInlineBotMessage.md
index ea371589..c1b49029 100644
--- a/old_docs/API_docs_v82/methods/messages_editInlineBotMessage.md
+++ b/old_docs/API_docs_v82/methods/messages_editInlineBotMessage.md
@@ -98,11 +98,11 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
diff --git a/old_docs/API_docs_v82/methods/messages_editMessage.md b/old_docs/API_docs_v82/methods/messages_editMessage.md
index e6f55d08..ed3c9ada 100644
--- a/old_docs/API_docs_v82/methods/messages_editMessage.md
+++ b/old_docs/API_docs_v82/methods/messages_editMessage.md
@@ -99,20 +99,20 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v82/methods/messages_exportChatInvite.md b/old_docs/API_docs_v82/methods/messages_exportChatInvite.md
index f3449e79..bc6272e4 100644
--- a/old_docs/API_docs_v82/methods/messages_exportChatInvite.md
+++ b/old_docs/API_docs_v82/methods/messages_exportChatInvite.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
ExportedChatInvite = messages.exportChatInvite({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_faveSticker.md b/old_docs/API_docs_v82/methods/messages_faveSticker.md
index a8b1ab56..9f9f423d 100644
--- a/old_docs/API_docs_v82/methods/messages_faveSticker.md
+++ b/old_docs/API_docs_v82/methods/messages_faveSticker.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.faveSticker({id=InputDocument, unfave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_forwardMessages.md b/old_docs/API_docs_v82/methods/messages_forwardMessages.md
index d2453d05..743fa7a6 100644
--- a/old_docs/API_docs_v82/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v82/methods/messages_forwardMessages.md
@@ -48,29 +48,29 @@ Or, if you're into Lua:
Updates = messages.forwardMessages({silent=Bool, background=Bool, with_my_score=Bool, grouped=Bool, from_peer=InputPeer, id={int}, to_peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v82/methods/messages_getBotCallbackAnswer.md b/old_docs/API_docs_v82/methods/messages_getBotCallbackAnswer.md
index f97fa5b0..3f8cc23b 100644
--- a/old_docs/API_docs_v82/methods/messages_getBotCallbackAnswer.md
+++ b/old_docs/API_docs_v82/methods/messages_getBotCallbackAnswer.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
messages_BotCallbackAnswer = messages.getBotCallbackAnswer({game=Bool, peer=InputPeer, msg_id=int, data='bytes', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v82/methods/messages_getChats.md b/old_docs/API_docs_v82/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/old_docs/API_docs_v82/methods/messages_getChats.md
+++ b/old_docs/API_docs_v82/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_getCommonChats.md b/old_docs/API_docs_v82/methods/messages_getCommonChats.md
index 9470a0ee..cff23c3f 100644
--- a/old_docs/API_docs_v82/methods/messages_getCommonChats.md
+++ b/old_docs/API_docs_v82/methods/messages_getCommonChats.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_Chats = messages.getCommonChats({user_id=InputUser, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_getDhConfig.md b/old_docs/API_docs_v82/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v82/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v82/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_getDialogs.md b/old_docs/API_docs_v82/methods/messages_getDialogs.md
index 5d5a75ff..da3efe36 100644
--- a/old_docs/API_docs_v82/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v82/methods/messages_getDialogs.md
@@ -47,13 +47,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({exclude_pinned=Bool, offset_date=int, offset_id=int, offset_peer=InputPeer, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v82/methods/messages_getDocumentByHash.md b/old_docs/API_docs_v82/methods/messages_getDocumentByHash.md
index 73a235d5..06469c52 100644
--- a/old_docs/API_docs_v82/methods/messages_getDocumentByHash.md
+++ b/old_docs/API_docs_v82/methods/messages_getDocumentByHash.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Document = messages.getDocumentByHash({sha256='bytes', size=int, mime_type='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_getFullChat.md b/old_docs/API_docs_v82/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v82/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v82/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_getGameHighScores.md b/old_docs/API_docs_v82/methods/messages_getGameHighScores.md
index 249e1d09..5c484bbb 100644
--- a/old_docs/API_docs_v82/methods/messages_getGameHighScores.md
+++ b/old_docs/API_docs_v82/methods/messages_getGameHighScores.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
messages_HighScores = messages.getGameHighScores({peer=InputPeer, id=int, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v82/methods/messages_getHistory.md b/old_docs/API_docs_v82/methods/messages_getHistory.md
index d623a61e..a0389d7b 100644
--- a/old_docs/API_docs_v82/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v82/methods/messages_getHistory.md
@@ -49,16 +49,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset_id=int, offset_date=int, add_offset=int, limit=int, max_id=int, min_id=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v82/methods/messages_getInlineBotResults.md b/old_docs/API_docs_v82/methods/messages_getInlineBotResults.md
index 1efcb412..17d678b7 100644
--- a/old_docs/API_docs_v82/methods/messages_getInlineBotResults.md
+++ b/old_docs/API_docs_v82/methods/messages_getInlineBotResults.md
@@ -46,13 +46,13 @@ Or, if you're into Lua:
messages_BotResults = messages.getInlineBotResults({bot=InputUser, peer=InputPeer, geo_point=InputGeoPoint, query='string', offset='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
-|BOT_INVALID|This is not a valid bot|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
+|400|BOT_INVALID|This is not a valid bot|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v82/methods/messages_getInlineGameHighScores.md b/old_docs/API_docs_v82/methods/messages_getInlineGameHighScores.md
index e68c6db8..ac33b6b8 100644
--- a/old_docs/API_docs_v82/methods/messages_getInlineGameHighScores.md
+++ b/old_docs/API_docs_v82/methods/messages_getInlineGameHighScores.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_HighScores = messages.getInlineGameHighScores({id=InputBotInlineMessageID, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v82/methods/messages_getMessageEditData.md b/old_docs/API_docs_v82/methods/messages_getMessageEditData.md
index 7f1b7164..b907d78c 100644
--- a/old_docs/API_docs_v82/methods/messages_getMessageEditData.md
+++ b/old_docs/API_docs_v82/methods/messages_getMessageEditData.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_MessageEditData = messages.getMessageEditData({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v82/methods/messages_getMessagesViews.md b/old_docs/API_docs_v82/methods/messages_getMessagesViews.md
index 3d490315..143e568c 100644
--- a/old_docs/API_docs_v82/methods/messages_getMessagesViews.md
+++ b/old_docs/API_docs_v82/methods/messages_getMessagesViews.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
Vector_of_int = messages.getMessagesViews({peer=InputPeer, id={int}, increment=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_getPeerDialogs.md b/old_docs/API_docs_v82/methods/messages_getPeerDialogs.md
index 02eb9b43..17e0d11e 100644
--- a/old_docs/API_docs_v82/methods/messages_getPeerDialogs.md
+++ b/old_docs/API_docs_v82/methods/messages_getPeerDialogs.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPeerDialogs({peers={InputDialogPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_getPeerSettings.md b/old_docs/API_docs_v82/methods/messages_getPeerSettings.md
index 26dafb9b..69032ff5 100644
--- a/old_docs/API_docs_v82/methods/messages_getPeerSettings.md
+++ b/old_docs/API_docs_v82/methods/messages_getPeerSettings.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
PeerSettings = messages.getPeerSettings({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_getPinnedDialogs.md b/old_docs/API_docs_v82/methods/messages_getPinnedDialogs.md
index 828d622e..f106098d 100644
--- a/old_docs/API_docs_v82/methods/messages_getPinnedDialogs.md
+++ b/old_docs/API_docs_v82/methods/messages_getPinnedDialogs.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPinnedDialogs({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FOLDER_ID_INVALID|Invalid folder ID|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FOLDER_ID_INVALID|Invalid folder ID|
diff --git a/old_docs/API_docs_v82/methods/messages_getStickerSet.md b/old_docs/API_docs_v82/methods/messages_getStickerSet.md
index 57bce84d..487316cc 100644
--- a/old_docs/API_docs_v82/methods/messages_getStickerSet.md
+++ b/old_docs/API_docs_v82/methods/messages_getStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_StickerSet = messages.getStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_getUnreadMentions.md b/old_docs/API_docs_v82/methods/messages_getUnreadMentions.md
index 1fa1f269..923229eb 100644
--- a/old_docs/API_docs_v82/methods/messages_getUnreadMentions.md
+++ b/old_docs/API_docs_v82/methods/messages_getUnreadMentions.md
@@ -47,10 +47,10 @@ Or, if you're into Lua:
messages_Messages = messages.getUnreadMentions({peer=InputPeer, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_getWebPage.md b/old_docs/API_docs_v82/methods/messages_getWebPage.md
index ce51ff41..63ef5e93 100644
--- a/old_docs/API_docs_v82/methods/messages_getWebPage.md
+++ b/old_docs/API_docs_v82/methods/messages_getWebPage.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
WebPage = messages.getWebPage({url='string', hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|WC_CONVERT_URL_INVALID|WC convert URL invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|WC_CONVERT_URL_INVALID|WC convert URL invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_hideReportSpam.md b/old_docs/API_docs_v82/methods/messages_hideReportSpam.md
index c4bf7399..57756d2e 100644
--- a/old_docs/API_docs_v82/methods/messages_hideReportSpam.md
+++ b/old_docs/API_docs_v82/methods/messages_hideReportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.hideReportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_importChatInvite.md b/old_docs/API_docs_v82/methods/messages_importChatInvite.md
index 12120867..101b4b19 100644
--- a/old_docs/API_docs_v82/methods/messages_importChatInvite.md
+++ b/old_docs/API_docs_v82/methods/messages_importChatInvite.md
@@ -42,16 +42,16 @@ Or, if you're into Lua:
Updates = messages.importChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v82/methods/messages_installStickerSet.md b/old_docs/API_docs_v82/methods/messages_installStickerSet.md
index 21a57a85..67f2aca0 100644
--- a/old_docs/API_docs_v82/methods/messages_installStickerSet.md
+++ b/old_docs/API_docs_v82/methods/messages_installStickerSet.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_StickerSetInstallResult = messages.installStickerSet({stickerset=InputStickerSet, archived=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_migrateChat.md b/old_docs/API_docs_v82/methods/messages_migrateChat.md
index a72f4c11..ee4010eb 100644
--- a/old_docs/API_docs_v82/methods/messages_migrateChat.md
+++ b/old_docs/API_docs_v82/methods/messages_migrateChat.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
Updates = messages.migrateChat({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v82/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v82/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v82/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v82/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v82/methods/messages_readHistory.md b/old_docs/API_docs_v82/methods/messages_readHistory.md
index 2ad5cd09..a7f0eca7 100644
--- a/old_docs/API_docs_v82/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v82/methods/messages_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.readHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v82/methods/messages_receivedQueue.md b/old_docs/API_docs_v82/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v82/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v82/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v82/methods/messages_reorderPinnedDialogs.md b/old_docs/API_docs_v82/methods/messages_reorderPinnedDialogs.md
index 49aaca93..2452409a 100644
--- a/old_docs/API_docs_v82/methods/messages_reorderPinnedDialogs.md
+++ b/old_docs/API_docs_v82/methods/messages_reorderPinnedDialogs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.reorderPinnedDialogs({force=Bool, order={InputDialogPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_reportEncryptedSpam.md b/old_docs/API_docs_v82/methods/messages_reportEncryptedSpam.md
index 9b1e868b..aeac27ef 100644
--- a/old_docs/API_docs_v82/methods/messages_reportEncryptedSpam.md
+++ b/old_docs/API_docs_v82/methods/messages_reportEncryptedSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportEncryptedSpam({peer=InputEncryptedChat, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_reportSpam.md b/old_docs/API_docs_v82/methods/messages_reportSpam.md
index e92fba13..dc256e55 100644
--- a/old_docs/API_docs_v82/methods/messages_reportSpam.md
+++ b/old_docs/API_docs_v82/methods/messages_reportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_requestEncryption.md b/old_docs/API_docs_v82/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v82/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v82/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_saveDraft.md b/old_docs/API_docs_v82/methods/messages_saveDraft.md
index 791ce234..ea6d407e 100644
--- a/old_docs/API_docs_v82/methods/messages_saveDraft.md
+++ b/old_docs/API_docs_v82/methods/messages_saveDraft.md
@@ -89,10 +89,10 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_saveGif.md b/old_docs/API_docs_v82/methods/messages_saveGif.md
index f504ff9e..010e17ec 100644
--- a/old_docs/API_docs_v82/methods/messages_saveGif.md
+++ b/old_docs/API_docs_v82/methods/messages_saveGif.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.saveGif({id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|GIF_ID_INVALID|The provided GIF ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|GIF_ID_INVALID|The provided GIF ID is invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_saveRecentSticker.md b/old_docs/API_docs_v82/methods/messages_saveRecentSticker.md
index 98c74efd..072b6fe9 100644
--- a/old_docs/API_docs_v82/methods/messages_saveRecentSticker.md
+++ b/old_docs/API_docs_v82/methods/messages_saveRecentSticker.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.saveRecentSticker({attached=Bool, id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_search.md b/old_docs/API_docs_v82/methods/messages_search.md
index 83cb34c6..07529b40 100644
--- a/old_docs/API_docs_v82/methods/messages_search.md
+++ b/old_docs/API_docs_v82/methods/messages_search.md
@@ -53,16 +53,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({peer=InputPeer, q='string', from_id=InputUser, filter=MessagesFilter, min_date=int, max_date=int, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_searchGifs.md b/old_docs/API_docs_v82/methods/messages_searchGifs.md
index 7be4173b..1602d35e 100644
--- a/old_docs/API_docs_v82/methods/messages_searchGifs.md
+++ b/old_docs/API_docs_v82/methods/messages_searchGifs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_FoundGifs = messages.searchGifs({q='string', offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v82/methods/messages_searchGlobal.md b/old_docs/API_docs_v82/methods/messages_searchGlobal.md
index fb38398b..c8da163c 100644
--- a/old_docs/API_docs_v82/methods/messages_searchGlobal.md
+++ b/old_docs/API_docs_v82/methods/messages_searchGlobal.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
messages_Messages = messages.searchGlobal({q='string', offset_date=int, offset_peer=InputPeer, offset_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v82/methods/messages_sendEncrypted.md b/old_docs/API_docs_v82/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v82/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v82/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v82/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v82/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v82/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v82/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v82/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v82/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v82/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v82/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v82/methods/messages_sendInlineBotResult.md b/old_docs/API_docs_v82/methods/messages_sendInlineBotResult.md
index 9ffa02ae..a2b57f4d 100644
--- a/old_docs/API_docs_v82/methods/messages_sendInlineBotResult.md
+++ b/old_docs/API_docs_v82/methods/messages_sendInlineBotResult.md
@@ -48,15 +48,15 @@ Or, if you're into Lua:
Updates = messages.sendInlineBotResult({silent=Bool, background=Bool, clear_draft=Bool, peer=InputPeer, reply_to_msg_id=int, query_id=long, id='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INLINE_RESULT_EXPIRED|The inline query expired|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|QUERY_ID_EMPTY|The query ID is empty|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INLINE_RESULT_EXPIRED|The inline query expired|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|QUERY_ID_EMPTY|The query ID is empty|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v82/methods/messages_sendMedia.md b/old_docs/API_docs_v82/methods/messages_sendMedia.md
index 44c604c6..a2244583 100644
--- a/old_docs/API_docs_v82/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v82/methods/messages_sendMedia.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v82/methods/messages_sendMessage.md b/old_docs/API_docs_v82/methods/messages_sendMessage.md
index 5641ebc3..e0ab305d 100644
--- a/old_docs/API_docs_v82/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v82/methods/messages_sendMessage.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v82/methods/messages_sendMultiMedia.md b/old_docs/API_docs_v82/methods/messages_sendMultiMedia.md
index 9ebdcb88..5684a6d2 100644
--- a/old_docs/API_docs_v82/methods/messages_sendMultiMedia.md
+++ b/old_docs/API_docs_v82/methods/messages_sendMultiMedia.md
@@ -47,11 +47,11 @@ Or, if you're into Lua:
Updates = messages.sendMultiMedia({silent=Bool, background=Bool, clear_draft=Bool, peer=InputPeer, reply_to_msg_id=int, multi_media={InputSingleMedia}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_sendScreenshotNotification.md b/old_docs/API_docs_v82/methods/messages_sendScreenshotNotification.md
index 3f5bb36d..4e4e40f5 100644
--- a/old_docs/API_docs_v82/methods/messages_sendScreenshotNotification.md
+++ b/old_docs/API_docs_v82/methods/messages_sendScreenshotNotification.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = messages.sendScreenshotNotification({peer=InputPeer, reply_to_msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_setBotCallbackAnswer.md b/old_docs/API_docs_v82/methods/messages_setBotCallbackAnswer.md
index ed058b4f..630ca61c 100644
--- a/old_docs/API_docs_v82/methods/messages_setBotCallbackAnswer.md
+++ b/old_docs/API_docs_v82/methods/messages_setBotCallbackAnswer.md
@@ -52,11 +52,11 @@ Bool = messages.setBotCallbackAnswer({alert=Bool, query_id=long, message='string
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|URL_INVALID|Invalid URL provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|URL_INVALID|Invalid URL provided|
diff --git a/old_docs/API_docs_v82/methods/messages_setBotPrecheckoutResults.md b/old_docs/API_docs_v82/methods/messages_setBotPrecheckoutResults.md
index cc615123..d6e0e61b 100644
--- a/old_docs/API_docs_v82/methods/messages_setBotPrecheckoutResults.md
+++ b/old_docs/API_docs_v82/methods/messages_setBotPrecheckoutResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotPrecheckoutResults({success=Bool, query_id=long, error='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ERROR_TEXT_EMPTY|The provided error message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ERROR_TEXT_EMPTY|The provided error message is empty|
diff --git a/old_docs/API_docs_v82/methods/messages_setBotShippingResults.md b/old_docs/API_docs_v82/methods/messages_setBotShippingResults.md
index f3a86f4f..adc4f64f 100644
--- a/old_docs/API_docs_v82/methods/messages_setBotShippingResults.md
+++ b/old_docs/API_docs_v82/methods/messages_setBotShippingResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotShippingResults({query_id=long, error='string', shipping_options={ShippingOption}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v82/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v82/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v82/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_setGameScore.md b/old_docs/API_docs_v82/methods/messages_setGameScore.md
index 548ee889..429b04c6 100644
--- a/old_docs/API_docs_v82/methods/messages_setGameScore.md
+++ b/old_docs/API_docs_v82/methods/messages_setGameScore.md
@@ -47,12 +47,12 @@ Or, if you're into Lua:
Updates = messages.setGameScore({edit_message=Bool, force=Bool, peer=InputPeer, id=int, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v82/methods/messages_setInlineBotResults.md b/old_docs/API_docs_v82/methods/messages_setInlineBotResults.md
index ab388e39..df4c30d4 100644
--- a/old_docs/API_docs_v82/methods/messages_setInlineBotResults.md
+++ b/old_docs/API_docs_v82/methods/messages_setInlineBotResults.md
@@ -48,23 +48,23 @@ Or, if you're into Lua:
Bool = messages.setInlineBotResults({gallery=Bool, private=Bool, query_id=long, results={InputBotInlineResult}, cache_time=int, next_offset='string', switch_pm=InlineBotSwitchPM, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ARTICLE_TITLE_EMPTY|The title of the article is empty|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|PHOTO_INVALID|Photo invalid|
-|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
-|QUERY_ID_INVALID|The query ID is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|RESULT_TYPE_INVALID|Result type invalid|
-|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
-|START_PARAM_INVALID|Start parameter invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ARTICLE_TITLE_EMPTY|The title of the article is empty|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|PHOTO_INVALID|Photo invalid|
+|400|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|RESULT_TYPE_INVALID|Result type invalid|
+|400|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
+|400|START_PARAM_INVALID|Start parameter invalid|
+|403|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v82/methods/messages_setInlineGameScore.md b/old_docs/API_docs_v82/methods/messages_setInlineGameScore.md
index 5eeb1540..62b163d5 100644
--- a/old_docs/API_docs_v82/methods/messages_setInlineGameScore.md
+++ b/old_docs/API_docs_v82/methods/messages_setInlineGameScore.md
@@ -46,11 +46,11 @@ Or, if you're into Lua:
Bool = messages.setInlineGameScore({edit_message=Bool, force=Bool, id=InputBotInlineMessageID, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v82/methods/messages_setTyping.md b/old_docs/API_docs_v82/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v82/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v82/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v82/methods/messages_startBot.md b/old_docs/API_docs_v82/methods/messages_startBot.md
index aa2b2d00..4bf12aa6 100644
--- a/old_docs/API_docs_v82/methods/messages_startBot.md
+++ b/old_docs/API_docs_v82/methods/messages_startBot.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = messages.startBot({bot=InputUser, peer=InputPeer, start_param='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INVALID|This is not a valid bot|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|START_PARAM_EMPTY|The start parameter is empty|
-|START_PARAM_INVALID|Start parameter invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INVALID|This is not a valid bot|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|START_PARAM_EMPTY|The start parameter is empty|
+|400|START_PARAM_INVALID|Start parameter invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_toggleChatAdmins.md b/old_docs/API_docs_v82/methods/messages_toggleChatAdmins.md
index 7851806d..8ea6e65e 100644
--- a/old_docs/API_docs_v82/methods/messages_toggleChatAdmins.md
+++ b/old_docs/API_docs_v82/methods/messages_toggleChatAdmins.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.toggleChatAdmins({chat_id=InputPeer, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v82/methods/messages_toggleDialogPin.md b/old_docs/API_docs_v82/methods/messages_toggleDialogPin.md
index 22c6d15d..ff46ef21 100644
--- a/old_docs/API_docs_v82/methods/messages_toggleDialogPin.md
+++ b/old_docs/API_docs_v82/methods/messages_toggleDialogPin.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.toggleDialogPin({pinned=Bool, peer=InputDialogPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_uninstallStickerSet.md b/old_docs/API_docs_v82/methods/messages_uninstallStickerSet.md
index 59abc510..6b7a2006 100644
--- a/old_docs/API_docs_v82/methods/messages_uninstallStickerSet.md
+++ b/old_docs/API_docs_v82/methods/messages_uninstallStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.uninstallStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v82/methods/messages_uploadMedia.md b/old_docs/API_docs_v82/methods/messages_uploadMedia.md
index afc806fe..09fc074c 100644
--- a/old_docs/API_docs_v82/methods/messages_uploadMedia.md
+++ b/old_docs/API_docs_v82/methods/messages_uploadMedia.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
MessageMedia = messages.uploadMedia({peer=InputPeer, media=InputMedia, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v82/methods/payments_getPaymentForm.md b/old_docs/API_docs_v82/methods/payments_getPaymentForm.md
index e8e04f37..4c28121f 100644
--- a/old_docs/API_docs_v82/methods/payments_getPaymentForm.md
+++ b/old_docs/API_docs_v82/methods/payments_getPaymentForm.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentForm = payments.getPaymentForm({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v82/methods/payments_getPaymentReceipt.md b/old_docs/API_docs_v82/methods/payments_getPaymentReceipt.md
index acb1c209..0e2f76a8 100644
--- a/old_docs/API_docs_v82/methods/payments_getPaymentReceipt.md
+++ b/old_docs/API_docs_v82/methods/payments_getPaymentReceipt.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentReceipt = payments.getPaymentReceipt({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v82/methods/payments_sendPaymentForm.md b/old_docs/API_docs_v82/methods/payments_sendPaymentForm.md
index b8fa905d..1910ede8 100644
--- a/old_docs/API_docs_v82/methods/payments_sendPaymentForm.md
+++ b/old_docs/API_docs_v82/methods/payments_sendPaymentForm.md
@@ -45,10 +45,10 @@ Or, if you're into Lua:
payments_PaymentResult = payments.sendPaymentForm({msg_id=int, requested_info_id='string', shipping_option_id='string', credentials=InputPaymentCredentials, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v82/methods/payments_validateRequestedInfo.md b/old_docs/API_docs_v82/methods/payments_validateRequestedInfo.md
index 3b9da7e6..f18e1660 100644
--- a/old_docs/API_docs_v82/methods/payments_validateRequestedInfo.md
+++ b/old_docs/API_docs_v82/methods/payments_validateRequestedInfo.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
payments_ValidatedRequestedInfo = payments.validateRequestedInfo({save=Bool, msg_id=int, info=PaymentRequestedInfo, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v82/methods/phone_acceptCall.md b/old_docs/API_docs_v82/methods/phone_acceptCall.md
index b75ac65b..f5c58f01 100644
--- a/old_docs/API_docs_v82/methods/phone_acceptCall.md
+++ b/old_docs/API_docs_v82/methods/phone_acceptCall.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->acceptCall(['peer' => InputPhoneCall, 'g_b' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.acceptCall({peer=InputPhoneCall, g_b='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
diff --git a/old_docs/API_docs_v82/methods/phone_confirmCall.md b/old_docs/API_docs_v82/methods/phone_confirmCall.md
index 1a75563d..468307cc 100644
--- a/old_docs/API_docs_v82/methods/phone_confirmCall.md
+++ b/old_docs/API_docs_v82/methods/phone_confirmCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->confirmCall(['peer' => InputPhoneCall, 'g_a' => 'bytes', 'key_fingerprint' => long, 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.confirmCall({peer=InputPhoneCall, g_a='bytes', key_fingerprint=long, protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v82/methods/phone_discardCall.md b/old_docs/API_docs_v82/methods/phone_discardCall.md
index e50456eb..ffaa18ea 100644
--- a/old_docs/API_docs_v82/methods/phone_discardCall.md
+++ b/old_docs/API_docs_v82/methods/phone_discardCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|duration|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|reason|[PhoneCallDiscardReason](../types/PhoneCallDiscardReason.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|connection\_id|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [Updates](../types/Updates.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Updates = $MadelineProto->phone->discardCall(['peer' => InputPhoneCall, 'duration' => int, 'reason' => PhoneCallDiscardReason, 'connection_id' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Updates = phone.discardCall({peer=InputPhoneCall, duration=int, reason=PhoneCallDiscardReason, connection_id=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v82/methods/phone_receivedCall.md b/old_docs/API_docs_v82/methods/phone_receivedCall.md
index c43bc8ac..6091424b 100644
--- a/old_docs/API_docs_v82/methods/phone_receivedCall.md
+++ b/old_docs/API_docs_v82/methods/phone_receivedCall.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Bool = phone.receivedCall({peer=InputPhoneCall, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_ALREADY_DECLINED|The call was already declined|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v82/methods/phone_requestCall.md b/old_docs/API_docs_v82/methods/phone_requestCall.md
index 9b8df564..c8e828f2 100644
--- a/old_docs/API_docs_v82/methods/phone_requestCall.md
+++ b/old_docs/API_docs_v82/methods/phone_requestCall.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Optional|
+|g\_a\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->requestCall(['user_id' => InputUser, 'g_a_hash' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.requestCall({user_id=InputUser, g_a_hash='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
+|400|PARTICIPANT_VERSION_OUTDATED|The other participant does not use an up to date telegram client with support for calls|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|403|USER_IS_BLOCKED|You were blocked by this user|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v82/methods/phone_saveCallDebug.md b/old_docs/API_docs_v82/methods/phone_saveCallDebug.md
index 8acbc353..1e793c05 100644
--- a/old_docs/API_docs_v82/methods/phone_saveCallDebug.md
+++ b/old_docs/API_docs_v82/methods/phone_saveCallDebug.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = phone.saveCallDebug({peer=InputPhoneCall, debug=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
-|DATA_JSON_INVALID|The provided JSON data is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|DATA_JSON_INVALID|The provided JSON data is invalid|
diff --git a/old_docs/API_docs_v82/methods/phone_setCallRating.md b/old_docs/API_docs_v82/methods/phone_setCallRating.md
index 9bc6bdd0..9daed209 100644
--- a/old_docs/API_docs_v82/methods/phone_setCallRating.md
+++ b/old_docs/API_docs_v82/methods/phone_setCallRating.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Updates = phone.setCallRating({peer=InputPhoneCall, rating=int, comment='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v82/methods/photos_getUserPhotos.md b/old_docs/API_docs_v82/methods/photos_getUserPhotos.md
index 57f5772b..a01f3180 100644
--- a/old_docs/API_docs_v82/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v82/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v82/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v82/methods/photos_updateProfilePhoto.md
index cca2fe30..f7c91ec6 100644
--- a/old_docs/API_docs_v82/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v82/methods/photos_updateProfilePhoto.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v82/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v82/methods/photos_uploadProfilePhoto.md
index 457bade8..badde2de 100644
--- a/old_docs/API_docs_v82/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v82/methods/photos_uploadProfilePhoto.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v82/methods/stickers_addStickerToSet.md b/old_docs/API_docs_v82/methods/stickers_addStickerToSet.md
index 78e8437c..b1fa2aad 100644
--- a/old_docs/API_docs_v82/methods/stickers_addStickerToSet.md
+++ b/old_docs/API_docs_v82/methods/stickers_addStickerToSet.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.addStickerToSet({stickerset=InputStickerSet, sticker=InputStickerSetItem, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v82/methods/stickers_changeStickerPosition.md b/old_docs/API_docs_v82/methods/stickers_changeStickerPosition.md
index cddc1cbb..98dde67e 100644
--- a/old_docs/API_docs_v82/methods/stickers_changeStickerPosition.md
+++ b/old_docs/API_docs_v82/methods/stickers_changeStickerPosition.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.changeStickerPosition({sticker=InputDocument, position=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/old_docs/API_docs_v82/methods/stickers_createStickerSet.md b/old_docs/API_docs_v82/methods/stickers_createStickerSet.md
index 41e4ad11..741e0ad6 100644
--- a/old_docs/API_docs_v82/methods/stickers_createStickerSet.md
+++ b/old_docs/API_docs_v82/methods/stickers_createStickerSet.md
@@ -46,18 +46,18 @@ Or, if you're into Lua:
messages_StickerSet = stickers.createStickerSet({masks=Bool, user_id=InputUser, title='string', short_name='string', stickers={InputStickerSetItem}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|PACK_SHORT_NAME_INVALID|Short pack name invalid|
-|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|STICKER_EMOJI_INVALID|Sticker emoji invalid|
-|STICKER_FILE_INVALID|Sticker file invalid|
-|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
-|STICKERS_EMPTY|No sticker provided|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|PACK_SHORT_NAME_INVALID|Short pack name invalid|
+|400|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|STICKER_EMOJI_INVALID|Sticker emoji invalid|
+|400|STICKER_FILE_INVALID|Sticker file invalid|
+|400|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
+|400|STICKERS_EMPTY|No sticker provided|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v82/methods/stickers_removeStickerFromSet.md b/old_docs/API_docs_v82/methods/stickers_removeStickerFromSet.md
index ea4621f2..d1fc4339 100644
--- a/old_docs/API_docs_v82/methods/stickers_removeStickerFromSet.md
+++ b/old_docs/API_docs_v82/methods/stickers_removeStickerFromSet.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.removeStickerFromSet({sticker=InputDocument, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/old_docs/API_docs_v82/methods/updates_getChannelDifference.md b/old_docs/API_docs_v82/methods/updates_getChannelDifference.md
index 6fa79529..9735c14a 100644
--- a/old_docs/API_docs_v82/methods/updates_getChannelDifference.md
+++ b/old_docs/API_docs_v82/methods/updates_getChannelDifference.md
@@ -7,8 +7,56 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|force|[Bool](../types/Bool.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|filter|[ChannelMessagesFilter](../types/ChannelMessagesFilter.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_ChannelDifference](../types/updates_ChannelDifference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_ChannelDifference = $MadelineProto->updates->getChannelDifference(['force' => Bool, 'channel' => InputChannel, 'filter' => ChannelMessagesFilter, 'pts' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_ChannelDifference = updates.getChannelDifference({force=Bool, channel=InputChannel, filter=ChannelMessagesFilter, pts=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|400|RANGES_INVALID|Invalid range provided|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v82/methods/updates_getDifference.md b/old_docs/API_docs_v82/methods/updates_getDifference.md
index 33e7d7f2..bcfac4e2 100644
--- a/old_docs/API_docs_v82/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v82/methods/updates_getDifference.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|pts\_total\_limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'pts_total_limit' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, pts_total_limit=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v82/methods/updates_getState.md b/old_docs/API_docs_v82/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v82/methods/updates_getState.md
+++ b/old_docs/API_docs_v82/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v82/methods/upload_getCdnFile.md b/old_docs/API_docs_v82/methods/upload_getCdnFile.md
index 5e5b3f43..be9ad311 100644
--- a/old_docs/API_docs_v82/methods/upload_getCdnFile.md
+++ b/old_docs/API_docs_v82/methods/upload_getCdnFile.md
@@ -7,8 +7,40 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_CdnFile](../types/upload_CdnFile.md)
+
+### Can bots use this method: **NO**
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_CdnFile = $MadelineProto->upload->getCdnFile(['file_token' => 'bytes', 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_CdnFile = upload.getCdnFile({file_token='bytes', offset=int, limit=int, })
+```
+
diff --git a/old_docs/API_docs_v82/methods/upload_getCdnFileHashes.md b/old_docs/API_docs_v82/methods/upload_getCdnFileHashes.md
index ea6a8e75..d957578e 100644
--- a/old_docs/API_docs_v82/methods/upload_getCdnFileHashes.md
+++ b/old_docs/API_docs_v82/methods/upload_getCdnFileHashes.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->getCdnFileHashes(['file_token' => 'bytes', 'offset' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.getCdnFileHashes({file_token='bytes', offset=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/old_docs/API_docs_v82/methods/upload_getFile.md b/old_docs/API_docs_v82/methods/upload_getFile.md
index c72e6090..d8b433d6 100644
--- a/old_docs/API_docs_v82/methods/upload_getFile.md
+++ b/old_docs/API_docs_v82/methods/upload_getFile.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v82/methods/upload_getFileHashes.md b/old_docs/API_docs_v82/methods/upload_getFileHashes.md
index debeb60d..e03dd5c5 100644
--- a/old_docs/API_docs_v82/methods/upload_getFileHashes.md
+++ b/old_docs/API_docs_v82/methods/upload_getFileHashes.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+Get file hashes
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | The file | Yes|
+|offset|[int](../types/int.md) | Offset | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->getFileHashes(['location' => InputFileLocation, 'offset' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.getFileHashes({location=InputFileLocation, offset=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LOCATION_INVALID|The provided location is invalid|
diff --git a/old_docs/API_docs_v82/methods/upload_getWebFile.md b/old_docs/API_docs_v82/methods/upload_getWebFile.md
index 21179a66..7b63f96c 100644
--- a/old_docs/API_docs_v82/methods/upload_getWebFile.md
+++ b/old_docs/API_docs_v82/methods/upload_getWebFile.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
upload_WebFile = upload.getWebFile({location=InputWebFileLocation, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LOCATION_INVALID|The provided location is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LOCATION_INVALID|The provided location is invalid|
diff --git a/old_docs/API_docs_v82/methods/upload_reuploadCdnFile.md b/old_docs/API_docs_v82/methods/upload_reuploadCdnFile.md
index cc20d5e3..f531557c 100644
--- a/old_docs/API_docs_v82/methods/upload_reuploadCdnFile.md
+++ b/old_docs/API_docs_v82/methods/upload_reuploadCdnFile.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|request\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->reuploadCdnFile(['file_token' => 'bytes', 'request_token' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.reuploadCdnFile({file_token='bytes', request_token='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/old_docs/API_docs_v82/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v82/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v82/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v82/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v82/methods/upload_saveFilePart.md b/old_docs/API_docs_v82/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v82/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v82/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v82/methods/users_getFullUser.md b/old_docs/API_docs_v82/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v82/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v82/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v82/methods/users_getUsers.md b/old_docs/API_docs_v82/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v82/methods/users_getUsers.md
+++ b/old_docs/API_docs_v82/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v82/methods/users_setSecureValueErrors.md b/old_docs/API_docs_v82/methods/users_setSecureValueErrors.md
index 40e398ab..661137fb 100644
--- a/old_docs/API_docs_v82/methods/users_setSecureValueErrors.md
+++ b/old_docs/API_docs_v82/methods/users_setSecureValueErrors.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = users.setSecureValueErrors({id=InputUser, errors={SecureValueError}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v86/methods/README.md b/old_docs/API_docs_v86/methods/README.md
index 5fa9e19a..a161eab6 100644
--- a/old_docs/API_docs_v86/methods/README.md
+++ b/old_docs/API_docs_v86/methods/README.md
@@ -30,477 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Accept telegram passport authorization: account.acceptAuthorization
-
-* Accept telegram's TOS: help.acceptTermsOfService
-
-* Add a sticker set: messages.installStickerSet
-
-* Add a sticker to favorites: messages.faveSticker
-
-* Add a sticker to recent stickers: messages.saveRecentSticker
-
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add phone number as contact: contacts.importContacts
-
-* Add sticker to stickerset: stickers.addStickerToSet
-
-* Add users to channel/supergroup: channels.inviteToChannel
-
-* Allow or disallow any user to invite users to this channel/supergroup: channels.toggleInvites
-
-* Block a user: contacts.block
-
-* Bots only: get telegram passport authorization form: account.getAuthorizationForm
-
-* Bots only: send payment form: payments.sendPaymentForm
-
-* Bots only: set precheckout results: messages.setBotPrecheckoutResults
-
-* Bots only: set shipping results: messages.setBotShippingResults
-
-* Bots only: set the callback answer (after a button was clicked): messages.setBotCallbackAnswer
-
-* Bots only: set the results of an inline query: messages.setInlineBotResults
-
-* Call inline bot: messages.getInlineBotResults
-
-* Change notification settings: account.updateNotifySettings
-
-* Change sticker position in photo: stickers.changeStickerPosition
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if about to edit a message or a media caption: messages.getMessageEditData
-
-* Check if an invitation link is valid: messages.checkChatInvite
-
-* Check if this username is available: account.checkUsername
-
-* Check if this username is free and can be assigned to a channel/supergroup: channels.checkUsername
-
-* Clear all drafts: messages.clearAllDrafts
-
-* Clear all recent stickers: messages.clearRecentStickers
-
-* Clear saved payments info: payments.clearSavedInfo
-
-* Confirm this phone number is associated to this account, obtain phone_code_hash from sendConfirmPhoneCode: account.confirmPhone
-
-* Convert chat to supergroup: messages.migrateChat
-
-* Create a chat (not supergroup): messages.createChat
-
-* Create channel/supergroup: channels.createChannel
-
-* Create stickerset: stickers.createStickerSet
-
-* Delete a certain session: account.resetAuthorization
-
-* Delete a certain telegram web login authorization: account.resetWebAuthorization
-
-* Delete a channel/supergroup: channels.deleteChannel
-
-* Delete a contact: contacts.deleteContact
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete all messages of a user in a channel/supergroup: channels.deleteUserHistory
-
-* Delete all temporary authorization keys except the ones provided: auth.dropTempAuthKeys
-
-* Delete channel/supergroup messages: channels.deleteMessages
-
-* Delete chat history: messages.deleteHistory
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete secure telegram passport value: account.deleteSecureValue
-
-* Delete the history of a supergroup/channel: channels.deleteHistory
-
-* Delete this account: account.deleteAccount
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Download a file through telegram: upload.getWebFile
-
-* Edit a message: messages.editMessage
-
-* Edit a sent inline message: messages.editInlineBotMessage
-
-* Edit admin permissions of a user in a channel/supergroup: channels.editAdmin
-
-* Edit admin permissions: messages.editChatAdmin
-
-* Edit the about text of a channel/supergroup: channels.editAbout
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the photo of a supergroup/channel: channels.editPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Edit the title of a supergroup/channel: channels.editTitle
-
-* Enable all users are admins in normal groups (not supergroups): messages.toggleChatAdmins
-
-* Enable or disable hidden history for new channel/supergroup users: channels.togglePreHistoryHidden
-
-* Export chat invite : messages.exportChatInvite
-
-* Export contact as card: contacts.exportCard
-
-* Export the invite link of a channel: channels.exportInvite
-
-* Find a sticker set: messages.searchStickerSets
-
-* Finish account exporting session: account.finishTakeoutSession
-
-* Forward messages: messages.forwardMessages
-
-* Get CDN configuration: help.getCdnConfig
-
-* Get a stickerset: messages.getStickerSet
-
-* Get account TTL: account.getAccountTTL
-
-* Get admin log of a channel/supergroup: channels.getAdminLog
-
-* Get all archived stickers: messages.getArchivedStickers
-
-* Get all channels you left: channels.getLeftChannels
-
-* Get all chats (not supergroups or channels): messages.getAllChats
-
-* Get all contacts: contacts.getContacts
-
-* Get all logged-in authorizations: account.getAuthorizations
-
-* Get all message drafts: messages.getAllDrafts
-
-* Get all secure telegram passport values: account.getAllSecureValues
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get all supergroups/channels where you're admin: channels.getAdminedPublicChannels
-
-* Get and increase message views: messages.getMessagesViews
-
-* Get available languages: langpack.getLanguages
-
-* Get blocked users: contacts.getBlocked
-
-* Get call configuration: phone.getCallConfig
-
-* Get channel/supergroup messages: channels.getMessages
-
-* Get channel/supergroup participants (you should use `$MadelineProto->get_pwr_chat($id)` instead): channels.getParticipants
-
-* Get chats in common with a user: messages.getCommonChats
-
-* Get deep link info: help.getDeepLinkInfo
-
-* Get dialog info of peers: messages.getPeerDialogs
-
-* Get dialogs marked as unread manually: messages.getDialogUnreadMarks
-
-* Get document by SHA256 hash: messages.getDocumentByHash
-
-* Get favorite stickers: messages.getFavedStickers
-
-* Get featured stickers: messages.getFeaturedStickers
-
-* Get high scores of a game sent in an inline message: messages.getInlineGameHighScores
-
-* Get high scores of a game: messages.getGameHighScores
-
-* Get info about a certain channel/supergroup participant: channels.getParticipant
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about multiple channels/supergroups: channels.getChannels
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get information about the current proxy: help.getProxyData
-
-* Get invitation text: help.getInviteText
-
-* Get language pack strings: langpack.getStrings
-
-* Get language pack updates: langpack.getDifference
-
-* Get language pack: langpack.getLangPack
-
-* Get masks: messages.getMaskStickers
-
-* Get message ranges to fetch: messages.getSplitRanges
-
-* Get messages: messages.getMessages
-
-* Get most used chats: contacts.getTopPeers
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get passport config: help.getPassportConfig
-
-* Get payment form: payments.getPaymentForm
-
-* Get payment receipt: payments.getPaymentReceipt
-
-* Get pinned dialogs: messages.getPinnedDialogs
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get recent locations: messages.getRecentLocations
-
-* Get recent stickers: messages.getRecentStickers
-
-* Get recent t.me URLs: help.getRecentMeUrls
-
-* Get saved contacts: contacts.getSaved
-
-* Get saved gifs: messages.getSavedGifs
-
-* Get saved payments info: payments.getSavedInfo
-
-* Get secure value for telegram passport: account.getSecureValue
-
-* Get server configuration: help.getConfig
-
-* Get stickers attachable to images: messages.getAttachedStickers
-
-* Get stickers: messages.getStickers
-
-* Get telegram web login authorizations: account.getWebAuthorizations
-
-* Get temporary password for buying products through bots: account.getTmpPassword
-
-* Get the callback answer of a bot (after clicking a button): messages.getBotCallbackAnswer
-
-* Get the changelog of this app: help.getAppChangelog
-
-* Get the current password: account.getPassword
-
-* Get the link of a message in a channel: channels.exportMessageLink
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Get the settings of apeer: messages.getPeerSettings
-
-* Get unread mentions: messages.getUnreadMentions
-
-* Get updated TOS: help.getTermsOfServiceUpdate
-
-* Get webpage preview: messages.getWebPage
-
-* Get webpage preview: messages.getWebPagePreview
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Global message search: messages.searchGlobal
-
-* Hide report spam popup: messages.hideReportSpam
-
-* Import card as contact: contacts.importCard
-
-* Import chat invite: messages.importChatInvite
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Invalidate sent phone code: auth.cancelCode
-
-* Invoke method from takeout session: invokeWithTakeout
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invoke with messages range: invokeWithMessagesRange
-
-* Invoke with method without returning updates in the socket: invokeWithoutUpdates
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Join a channel/supergroup: channels.joinChannel
-
-* Kick or ban a user from a channel/supergroup: channels.editBanned
-
-* Leave a channel/supergroup: channels.leaveChannel
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark channel/supergroup history as read: channels.readHistory
-
-* Mark channel/supergroup messages as read: channels.readMessageContents
-
-* Mark dialog as unread : messages.markDialogUnread
-
-* Mark mentions as read: messages.readMentions
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Mark new featured stickers as read: messages.readFeaturedStickers
-
-* Notify server that you received a call (server will refuse all incoming calls until the current call is over): phone.receivedCall
-
-* Pin or unpin dialog: messages.toggleDialogPin
-
-* Register device for push notifications: account.registerDevice
-
-* Remove a sticker set: messages.uninstallStickerSet
-
-* Remove sticker from stickerset: stickers.removeStickerFromSet
-
-* Reorder pinned dialogs: messages.reorderPinnedDialogs
-
-* Reorder sticker sets: messages.reorderStickerSets
-
-* Report a message in a supergroup/channel for spam: channels.reportSpam
-
-* Report a message: messages.report
-
-* Report a peer for spam: messages.reportSpam
-
-* Report for spam a secret chat: messages.reportEncryptedSpam
-
-* Report for spam: account.reportPeer
-
-* Resend the SMS verification code: auth.resendCode
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Reset all telegram web login authorizations: account.resetWebAuthorizations
-
-* Reset saved contacts: contacts.resetSaved
-
-* Reset top peer rating for a certain category/peer: contacts.resetTopPeerRating
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Save a GIF: messages.saveGif
-
-* Save a message draft: messages.saveDraft
-
-* Save call debugging info: phone.saveCallDebug
-
-* Save telegram passport secure value: account.saveSecureValue
-
-* Search contacts: contacts.search
-
-* Search gifs: messages.searchGifs
-
-* Search peers or messages: messages.search
-
-* Send a custom request to the bot API: bots.sendCustomRequest
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send an album: messages.sendMultiMedia
-
-* Send an email to recover the 2FA password: auth.requestPasswordRecovery
-
-* Send confirmation phone code: account.sendConfirmPhoneCode
-
-* Send email verification code: account.sendVerifyEmailCode
-
-* Send inline bot result obtained with messages.getInlineBotResults to the chat: messages.sendInlineBotResult
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send phone verification code: account.sendVerifyPhoneCode
-
-* Send screenshot notification: messages.sendScreenshotNotification
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Send webhook request via bot API: bots.answerWebhookJSONQuery
-
-* Set account TTL: account.setAccountTTL
-
-* Set phone call rating: phone.setCallRating
-
-* Set privacy settings: account.setPrivacy
-
-* Set secure value error for telegram passport: users.setSecureValueErrors
-
-* Set the game score of an inline message: messages.setInlineGameScore
-
-* Set the game score: messages.setGameScore
-
-* Set the pinned message of a channel/supergroup: channels.updatePinnedMessage
-
-* Set the supergroup/channel stickerpack: channels.setStickers
-
-* Set the update status of webhook: help.setBotUpdatesStatus
-
-* Start a bot: messages.startBot
-
-* Start account exporting session: account.initTakeoutSession
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Toggle channel signatures: channels.toggleSignatures
-
-* Toggle top peers: contacts.toggleTopPeers
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update profile info: account.updateProfile
-
-* Update the username of a supergroup/channel: channels.updateUsername
-
-* Update this user's username: account.updateUsername
-
-* Upload a file without sending it to anyone: messages.uploadMedia
-
-* Upload a secret chat file without sending it to anyone: messages.uploadEncryptedFile
-
-* Upload profile photo: photos.uploadProfilePhoto
-
-* Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
-
-* Validate requested payment info: payments.validateRequestedInfo
-
-* Verify email address: account.verifyEmail
-
-* Verify phone number: account.verifyPhone
-
diff --git a/old_docs/API_docs_v86/methods/account_changePhone.md b/old_docs/API_docs_v86/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/old_docs/API_docs_v86/methods/account_changePhone.md
+++ b/old_docs/API_docs_v86/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v86/methods/account_checkUsername.md b/old_docs/API_docs_v86/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v86/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v86/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v86/methods/account_confirmPhone.md b/old_docs/API_docs_v86/methods/account_confirmPhone.md
index b730c2dc..c114cd20 100644
--- a/old_docs/API_docs_v86/methods/account_confirmPhone.md
+++ b/old_docs/API_docs_v86/methods/account_confirmPhone.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = account.confirmPhone({phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_HASH_INVALID|Code hash invalid|
-|PHONE_CODE_EMPTY|phone_code is missing|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_HASH_INVALID|Code hash invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
diff --git a/old_docs/API_docs_v86/methods/account_getNotifySettings.md b/old_docs/API_docs_v86/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v86/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v86/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v86/methods/account_getPasswordSettings.md b/old_docs/API_docs_v86/methods/account_getPasswordSettings.md
index 8ebb78ee..e41c6b67 100644
--- a/old_docs/API_docs_v86/methods/account_getPasswordSettings.md
+++ b/old_docs/API_docs_v86/methods/account_getPasswordSettings.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+Get the current 2FA settings
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password|[InputCheckPasswordSRP](../types/InputCheckPasswordSRP.md) | You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [account\_PasswordSettings](../types/account_PasswordSettings.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$account_PasswordSettings = $MadelineProto->account->getPasswordSettings(['password' => InputCheckPasswordSRP, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+account_PasswordSettings = account.getPasswordSettings({password=InputCheckPasswordSRP, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v86/methods/account_getPrivacy.md b/old_docs/API_docs_v86/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/old_docs/API_docs_v86/methods/account_getPrivacy.md
+++ b/old_docs/API_docs_v86/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v86/methods/account_getTmpPassword.md b/old_docs/API_docs_v86/methods/account_getTmpPassword.md
index 3a29d97a..0ae4061f 100644
--- a/old_docs/API_docs_v86/methods/account_getTmpPassword.md
+++ b/old_docs/API_docs_v86/methods/account_getTmpPassword.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
account_TmpPassword = account.getTmpPassword({password=InputCheckPasswordSRP, period=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_HASH_INVALID|The provided password hash is invalid|
-|TMP_PASSWORD_DISABLED|The temporary password is disabled|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
+|400|TMP_PASSWORD_DISABLED|The temporary password is disabled|
diff --git a/old_docs/API_docs_v86/methods/account_registerDevice.md b/old_docs/API_docs_v86/methods/account_registerDevice.md
index 7c34f6c4..a8e8c2a2 100644
--- a/old_docs/API_docs_v86/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v86/methods/account_registerDevice.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({token_type=int, token='string', app_sandbox=Bool, secret='bytes', other_uids={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v86/methods/account_reportPeer.md b/old_docs/API_docs_v86/methods/account_reportPeer.md
index a203c900..87b080eb 100644
--- a/old_docs/API_docs_v86/methods/account_reportPeer.md
+++ b/old_docs/API_docs_v86/methods/account_reportPeer.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.reportPeer({peer=InputPeer, reason=ReportReason, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v86/methods/account_resetAuthorization.md b/old_docs/API_docs_v86/methods/account_resetAuthorization.md
index c950992c..e8e8ecc4 100644
--- a/old_docs/API_docs_v86/methods/account_resetAuthorization.md
+++ b/old_docs/API_docs_v86/methods/account_resetAuthorization.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.resetAuthorization({hash=long, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v86/methods/account_sendChangePhoneCode.md b/old_docs/API_docs_v86/methods/account_sendChangePhoneCode.md
index d5be60ef..08e5e86e 100644
--- a/old_docs/API_docs_v86/methods/account_sendChangePhoneCode.md
+++ b/old_docs/API_docs_v86/methods/account_sendChangePhoneCode.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendChangePhoneCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v86/methods/account_sendConfirmPhoneCode.md b/old_docs/API_docs_v86/methods/account_sendConfirmPhoneCode.md
index 028a1fdc..9fa7b57e 100644
--- a/old_docs/API_docs_v86/methods/account_sendConfirmPhoneCode.md
+++ b/old_docs/API_docs_v86/methods/account_sendConfirmPhoneCode.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendConfirmPhoneCode({allow_flashcall=Bool, hash='string', current_number=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v86/methods/account_setAccountTTL.md b/old_docs/API_docs_v86/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/old_docs/API_docs_v86/methods/account_setAccountTTL.md
+++ b/old_docs/API_docs_v86/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/old_docs/API_docs_v86/methods/account_setPrivacy.md b/old_docs/API_docs_v86/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/old_docs/API_docs_v86/methods/account_setPrivacy.md
+++ b/old_docs/API_docs_v86/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v86/methods/account_unregisterDevice.md b/old_docs/API_docs_v86/methods/account_unregisterDevice.md
index 13d11e88..e39f0811 100644
--- a/old_docs/API_docs_v86/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v86/methods/account_unregisterDevice.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', other_uids={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v86/methods/account_updateNotifySettings.md b/old_docs/API_docs_v86/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v86/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v86/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v86/methods/account_updatePasswordSettings.md b/old_docs/API_docs_v86/methods/account_updatePasswordSettings.md
index 80f27228..7afb81ea 100644
--- a/old_docs/API_docs_v86/methods/account_updatePasswordSettings.md
+++ b/old_docs/API_docs_v86/methods/account_updatePasswordSettings.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password|[InputCheckPasswordSRP](../types/InputCheckPasswordSRP.md) | You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|new\_settings|[account\_PasswordInputSettings](../types/account_PasswordInputSettings.md) | New 2FA settings | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->account->updatePasswordSettings(['password' => InputCheckPasswordSRP, 'new_settings' => account_PasswordInputSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = account.updatePasswordSettings({password=InputCheckPasswordSRP, new_settings=account_PasswordInputSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EMAIL_UNCONFIRMED|Email unconfirmed|
+|400|EMAIL_UNCONFIRMED_X|The provided email isn't confirmed, X is the length of the verification code that was just sent to the email.|
+|400|NEW_SALT_INVALID|The new salt is invalid|
+|400|NEW_SETTINGS_INVALID|The new settings are invalid|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v86/methods/account_updateProfile.md b/old_docs/API_docs_v86/methods/account_updateProfile.md
index af5b6a0f..0d74c5e5 100644
--- a/old_docs/API_docs_v86/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v86/methods/account_updateProfile.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v86/methods/account_updateStatus.md b/old_docs/API_docs_v86/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v86/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v86/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v86/methods/account_updateUsername.md b/old_docs/API_docs_v86/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v86/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v86/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v86/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v86/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v86/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v86/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v86/methods/auth_cancelCode.md b/old_docs/API_docs_v86/methods/auth_cancelCode.md
index fcbd7713..a69e0118 100644
--- a/old_docs/API_docs_v86/methods/auth_cancelCode.md
+++ b/old_docs/API_docs_v86/methods/auth_cancelCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = auth.cancelCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v86/methods/auth_checkPassword.md b/old_docs/API_docs_v86/methods/auth_checkPassword.md
index 8d76c483..ad2a88a2 100644
--- a/old_docs/API_docs_v86/methods/auth_checkPassword.md
+++ b/old_docs/API_docs_v86/methods/auth_checkPassword.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password|[InputCheckPasswordSRP](../types/InputCheckPasswordSRP.md) | You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->checkPassword(['password' => InputCheckPasswordSRP, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.checkPassword({password=InputCheckPasswordSRP, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v86/methods/auth_exportAuthorization.md b/old_docs/API_docs_v86/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v86/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v86/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v86/methods/auth_importAuthorization.md b/old_docs/API_docs_v86/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v86/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v86/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v86/methods/auth_importBotAuthorization.md b/old_docs/API_docs_v86/methods/auth_importBotAuthorization.md
index 1a98c1b9..98a2f8ca 100644
--- a/old_docs/API_docs_v86/methods/auth_importBotAuthorization.md
+++ b/old_docs/API_docs_v86/methods/auth_importBotAuthorization.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|api\_id|[int](../types/int.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_hash|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|bot\_auth\_token|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importBotAuthorization(['api_id' => int, 'api_hash' => 'string', 'bot_auth_token' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importBotAuthorization({api_id=int, api_hash='string', bot_auth_token='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ACCESS_TOKEN_EXPIRED|Access token expired|
+|400|ACCESS_TOKEN_INVALID|Access token invalid|
+|400|API_ID_INVALID|API ID invalid|
diff --git a/old_docs/API_docs_v86/methods/auth_logOut.md b/old_docs/API_docs_v86/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v86/methods/auth_logOut.md
+++ b/old_docs/API_docs_v86/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v86/methods/auth_recoverPassword.md b/old_docs/API_docs_v86/methods/auth_recoverPassword.md
index 83ff5aed..d4bad9c5 100644
--- a/old_docs/API_docs_v86/methods/auth_recoverPassword.md
+++ b/old_docs/API_docs_v86/methods/auth_recoverPassword.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
auth_Authorization = auth.recoverPassword({code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_EMPTY|The provided code is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_EMPTY|The provided code is empty|
diff --git a/old_docs/API_docs_v86/methods/auth_requestPasswordRecovery.md b/old_docs/API_docs_v86/methods/auth_requestPasswordRecovery.md
index 1864bbb0..b6ad57ba 100644
--- a/old_docs/API_docs_v86/methods/auth_requestPasswordRecovery.md
+++ b/old_docs/API_docs_v86/methods/auth_requestPasswordRecovery.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
auth_PasswordRecovery = auth.requestPasswordRecovery({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_EMPTY|The provided password is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_EMPTY|The provided password is empty|
diff --git a/old_docs/API_docs_v86/methods/auth_resendCode.md b/old_docs/API_docs_v86/methods/auth_resendCode.md
index ff7868ea..ec730d75 100644
--- a/old_docs/API_docs_v86/methods/auth_resendCode.md
+++ b/old_docs/API_docs_v86/methods/auth_resendCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = auth.resendCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v86/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v86/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v86/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v86/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v86/methods/auth_sendCode.md b/old_docs/API_docs_v86/methods/auth_sendCode.md
index 9afebb55..1e9d1a4e 100644
--- a/old_docs/API_docs_v86/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v86/methods/auth_sendCode.md
@@ -7,8 +7,59 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|allow\_flashcall|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|current\_number|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['allow_flashcall' => Bool, 'phone_number' => 'string', 'current_number' => Bool, 'api_id' => int, 'api_hash' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, api_id=int, api_hash='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v86/methods/auth_signIn.md b/old_docs/API_docs_v86/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v86/methods/auth_signIn.md
+++ b/old_docs/API_docs_v86/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v86/methods/auth_signUp.md b/old_docs/API_docs_v86/methods/auth_signUp.md
index 15960145..31154486 100644
--- a/old_docs/API_docs_v86/methods/auth_signUp.md
+++ b/old_docs/API_docs_v86/methods/auth_signUp.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', phone_code='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v86/methods/bots_answerWebhookJSONQuery.md b/old_docs/API_docs_v86/methods/bots_answerWebhookJSONQuery.md
index ae0fa6d9..f2233514 100644
--- a/old_docs/API_docs_v86/methods/bots_answerWebhookJSONQuery.md
+++ b/old_docs/API_docs_v86/methods/bots_answerWebhookJSONQuery.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = bots.answerWebhookJSONQuery({query_id=long, data=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v86/methods/bots_sendCustomRequest.md b/old_docs/API_docs_v86/methods/bots_sendCustomRequest.md
index c1fd8183..8a6a2df5 100644
--- a/old_docs/API_docs_v86/methods/bots_sendCustomRequest.md
+++ b/old_docs/API_docs_v86/methods/bots_sendCustomRequest.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
DataJSON = bots.sendCustomRequest({custom_method='string', params=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v86/methods/channels_checkUsername.md b/old_docs/API_docs_v86/methods/channels_checkUsername.md
index 483a2f6f..52365d34 100644
--- a/old_docs/API_docs_v86/methods/channels_checkUsername.md
+++ b/old_docs/API_docs_v86/methods/channels_checkUsername.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Bool = channels.checkUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v86/methods/channels_createChannel.md b/old_docs/API_docs_v86/methods/channels_createChannel.md
index b924e6a6..ecaee0ef 100644
--- a/old_docs/API_docs_v86/methods/channels_createChannel.md
+++ b/old_docs/API_docs_v86/methods/channels_createChannel.md
@@ -45,12 +45,12 @@ Or, if you're into Lua:
Updates = channels.createChannel({broadcast=Bool, megagroup=Bool, title='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_TITLE_EMPTY|No chat title provided|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
+|406|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v86/methods/channels_deleteChannel.md b/old_docs/API_docs_v86/methods/channels_deleteChannel.md
index 53a9c23d..1b8d2d48 100644
--- a/old_docs/API_docs_v86/methods/channels_deleteChannel.md
+++ b/old_docs/API_docs_v86/methods/channels_deleteChannel.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Updates = channels.deleteChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v86/methods/channels_deleteMessages.md b/old_docs/API_docs_v86/methods/channels_deleteMessages.md
index f76a9ad1..463ebad0 100644
--- a/old_docs/API_docs_v86/methods/channels_deleteMessages.md
+++ b/old_docs/API_docs_v86/methods/channels_deleteMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_AffectedMessages = channels.deleteMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v86/methods/channels_deleteUserHistory.md b/old_docs/API_docs_v86/methods/channels_deleteUserHistory.md
index 0a4e7d82..33905a7e 100644
--- a/old_docs/API_docs_v86/methods/channels_deleteUserHistory.md
+++ b/old_docs/API_docs_v86/methods/channels_deleteUserHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedHistory = channels.deleteUserHistory({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v86/methods/channels_editAbout.md b/old_docs/API_docs_v86/methods/channels_editAbout.md
index 47111668..d5e090e0 100644
--- a/old_docs/API_docs_v86/methods/channels_editAbout.md
+++ b/old_docs/API_docs_v86/methods/channels_editAbout.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Bool = channels.editAbout({channel=InputChannel, about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
-|CHAT_ABOUT_TOO_LONG|Chat about too long|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
+|400|CHAT_ABOUT_TOO_LONG|Chat about too long|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v86/methods/channels_editAdmin.md b/old_docs/API_docs_v86/methods/channels_editAdmin.md
index 43858599..edb7cf55 100644
--- a/old_docs/API_docs_v86/methods/channels_editAdmin.md
+++ b/old_docs/API_docs_v86/methods/channels_editAdmin.md
@@ -44,19 +44,19 @@ Or, if you're into Lua:
Updates = channels.editAdmin({channel=InputChannel, user_id=InputUser, admin_rights=ChannelAdminRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ADMINS_TOO_MUCH|There are too many admins|
-|BOT_CHANNELS_NA|Bots can't edit admin privileges|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
-|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ADMINS_TOO_MUCH|There are too many admins|
+|400|BOT_CHANNELS_NA|Bots can't edit admin privileges|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
+|403|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v86/methods/channels_editBanned.md b/old_docs/API_docs_v86/methods/channels_editBanned.md
index cffb653e..1fd5f597 100644
--- a/old_docs/API_docs_v86/methods/channels_editBanned.md
+++ b/old_docs/API_docs_v86/methods/channels_editBanned.md
@@ -44,14 +44,14 @@ Or, if you're into Lua:
Updates = channels.editBanned({channel=InputChannel, user_id=InputUser, banned_rights=ChannelBannedRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ADMIN_INVALID|You're not an admin|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ADMIN_INVALID|You're not an admin|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v86/methods/channels_editPhoto.md b/old_docs/API_docs_v86/methods/channels_editPhoto.md
index bec0ba48..caef32d5 100644
--- a/old_docs/API_docs_v86/methods/channels_editPhoto.md
+++ b/old_docs/API_docs_v86/methods/channels_editPhoto.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editPhoto({channel=InputChannel, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|PHOTO_INVALID|Photo invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|PHOTO_INVALID|Photo invalid|
diff --git a/old_docs/API_docs_v86/methods/channels_editTitle.md b/old_docs/API_docs_v86/methods/channels_editTitle.md
index b5efeb39..d7cb33da 100644
--- a/old_docs/API_docs_v86/methods/channels_editTitle.md
+++ b/old_docs/API_docs_v86/methods/channels_editTitle.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editTitle({channel=InputChannel, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v86/methods/channels_exportInvite.md b/old_docs/API_docs_v86/methods/channels_exportInvite.md
index 0918b3e7..9d578deb 100644
--- a/old_docs/API_docs_v86/methods/channels_exportInvite.md
+++ b/old_docs/API_docs_v86/methods/channels_exportInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ExportedChatInvite = channels.exportInvite({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INVITE_HASH_EXPIRED|The invite link has expired|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
diff --git a/old_docs/API_docs_v86/methods/channels_exportMessageLink.md b/old_docs/API_docs_v86/methods/channels_exportMessageLink.md
index 5dea54a7..fc2f248b 100644
--- a/old_docs/API_docs_v86/methods/channels_exportMessageLink.md
+++ b/old_docs/API_docs_v86/methods/channels_exportMessageLink.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
ExportedMessageLink = channels.exportMessageLink({channel=InputChannel, id=int, grouped=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v86/methods/channels_getAdminLog.md b/old_docs/API_docs_v86/methods/channels_getAdminLog.md
index 377c7320..adb87748 100644
--- a/old_docs/API_docs_v86/methods/channels_getAdminLog.md
+++ b/old_docs/API_docs_v86/methods/channels_getAdminLog.md
@@ -48,12 +48,12 @@ Or, if you're into Lua:
channels_AdminLogResults = channels.getAdminLog({channel=InputChannel, q='string', events_filter=ChannelAdminLogEventsFilter, admins={InputUser}, max_id=long, min_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v86/methods/channels_getChannels.md b/old_docs/API_docs_v86/methods/channels_getChannels.md
index 78d50641..95d7a188 100644
--- a/old_docs/API_docs_v86/methods/channels_getChannels.md
+++ b/old_docs/API_docs_v86/methods/channels_getChannels.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = channels.getChannels({id={InputChannel}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v86/methods/channels_getFullChannel.md b/old_docs/API_docs_v86/methods/channels_getFullChannel.md
index 45a8ec72..ebd53de4 100644
--- a/old_docs/API_docs_v86/methods/channels_getFullChannel.md
+++ b/old_docs/API_docs_v86/methods/channels_getFullChannel.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->channels->getFullChannel(['channel' => InputChannel, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = channels.getFullChannel({channel=InputChannel, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v86/methods/channels_getLeftChannels.md b/old_docs/API_docs_v86/methods/channels_getLeftChannels.md
index 2d256964..fac7ae07 100644
--- a/old_docs/API_docs_v86/methods/channels_getLeftChannels.md
+++ b/old_docs/API_docs_v86/methods/channels_getLeftChannels.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_Chats = channels.getLeftChannels({offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TAKEOUT_REQUIRED|A takeout session has to be initialized, first|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|TAKEOUT_REQUIRED|A takeout session has to be initialized, first|
diff --git a/old_docs/API_docs_v86/methods/channels_getMessages.md b/old_docs/API_docs_v86/methods/channels_getMessages.md
index 90cf5a47..f1ae0a4d 100644
--- a/old_docs/API_docs_v86/methods/channels_getMessages.md
+++ b/old_docs/API_docs_v86/methods/channels_getMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_Messages = channels.getMessages({channel=InputChannel, id={InputMessage}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
diff --git a/old_docs/API_docs_v86/methods/channels_getParticipant.md b/old_docs/API_docs_v86/methods/channels_getParticipant.md
index 6633114f..808156fd 100644
--- a/old_docs/API_docs_v86/methods/channels_getParticipant.md
+++ b/old_docs/API_docs_v86/methods/channels_getParticipant.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
channels_ChannelParticipant = channels.getParticipant({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v86/methods/channels_getParticipants.md b/old_docs/API_docs_v86/methods/channels_getParticipants.md
index 5ff242e6..fb7a39df 100644
--- a/old_docs/API_docs_v86/methods/channels_getParticipants.md
+++ b/old_docs/API_docs_v86/methods/channels_getParticipants.md
@@ -46,14 +46,14 @@ Or, if you're into Lua:
channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, filter=ChannelParticipantsFilter, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v86/methods/channels_inviteToChannel.md b/old_docs/API_docs_v86/methods/channels_inviteToChannel.md
index f7093f13..d8c5e88a 100644
--- a/old_docs/API_docs_v86/methods/channels_inviteToChannel.md
+++ b/old_docs/API_docs_v86/methods/channels_inviteToChannel.md
@@ -43,25 +43,25 @@ Or, if you're into Lua:
Updates = channels.inviteToChannel({channel=InputChannel, users={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
-|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_BLOCKED|User blocked|
-|USER_BOT|Bots can only be admins in channels.|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_KICKED|This user was kicked from this supergroup/channel|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
+|400|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_BLOCKED|User blocked|
+|400|USER_BOT|Bots can only be admins in channels.|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_KICKED|This user was kicked from this supergroup/channel|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v86/methods/channels_joinChannel.md b/old_docs/API_docs_v86/methods/channels_joinChannel.md
index b056031a..a4a7c177 100644
--- a/old_docs/API_docs_v86/methods/channels_joinChannel.md
+++ b/old_docs/API_docs_v86/methods/channels_joinChannel.md
@@ -42,15 +42,15 @@ Or, if you're into Lua:
Updates = channels.joinChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
diff --git a/old_docs/API_docs_v86/methods/channels_leaveChannel.md b/old_docs/API_docs_v86/methods/channels_leaveChannel.md
index fdea13ba..6538d443 100644
--- a/old_docs/API_docs_v86/methods/channels_leaveChannel.md
+++ b/old_docs/API_docs_v86/methods/channels_leaveChannel.md
@@ -42,14 +42,14 @@ Or, if you're into Lua:
Updates = channels.leaveChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
-|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
diff --git a/old_docs/API_docs_v86/methods/channels_readHistory.md b/old_docs/API_docs_v86/methods/channels_readHistory.md
index 93dc075f..3532dae0 100644
--- a/old_docs/API_docs_v86/methods/channels_readHistory.md
+++ b/old_docs/API_docs_v86/methods/channels_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readHistory({channel=InputChannel, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v86/methods/channels_readMessageContents.md b/old_docs/API_docs_v86/methods/channels_readMessageContents.md
index 80ddf2b0..8cd8c620 100644
--- a/old_docs/API_docs_v86/methods/channels_readMessageContents.md
+++ b/old_docs/API_docs_v86/methods/channels_readMessageContents.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readMessageContents({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v86/methods/channels_reportSpam.md b/old_docs/API_docs_v86/methods/channels_reportSpam.md
index db80676a..7e273cc5 100644
--- a/old_docs/API_docs_v86/methods/channels_reportSpam.md
+++ b/old_docs/API_docs_v86/methods/channels_reportSpam.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
Bool = channels.reportSpam({channel=InputChannel, user_id=InputUser, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
diff --git a/old_docs/API_docs_v86/methods/channels_setStickers.md b/old_docs/API_docs_v86/methods/channels_setStickers.md
index 10cd68bf..c9b95527 100644
--- a/old_docs/API_docs_v86/methods/channels_setStickers.md
+++ b/old_docs/API_docs_v86/methods/channels_setStickers.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.setStickers({channel=InputChannel, stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PARTICIPANTS_TOO_FEW|Not enough participants|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PARTICIPANTS_TOO_FEW|Not enough participants|
diff --git a/old_docs/API_docs_v86/methods/channels_toggleInvites.md b/old_docs/API_docs_v86/methods/channels_toggleInvites.md
index e5d3fba1..6266d30b 100644
--- a/old_docs/API_docs_v86/methods/channels_toggleInvites.md
+++ b/old_docs/API_docs_v86/methods/channels_toggleInvites.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.toggleInvites({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v86/methods/channels_toggleSignatures.md b/old_docs/API_docs_v86/methods/channels_toggleSignatures.md
index cdfc0fda..f8624946 100644
--- a/old_docs/API_docs_v86/methods/channels_toggleSignatures.md
+++ b/old_docs/API_docs_v86/methods/channels_toggleSignatures.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = channels.toggleSignatures({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v86/methods/channels_updatePinnedMessage.md b/old_docs/API_docs_v86/methods/channels_updatePinnedMessage.md
index 53733a22..37d7c3c0 100644
--- a/old_docs/API_docs_v86/methods/channels_updatePinnedMessage.md
+++ b/old_docs/API_docs_v86/methods/channels_updatePinnedMessage.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = channels.updatePinnedMessage({silent=Bool, channel=InputChannel, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v86/methods/channels_updateUsername.md b/old_docs/API_docs_v86/methods/channels_updateUsername.md
index 677712f9..48d250e6 100644
--- a/old_docs/API_docs_v86/methods/channels_updateUsername.md
+++ b/old_docs/API_docs_v86/methods/channels_updateUsername.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Bool = channels.updateUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_OCCUPIED|The provided username is already occupied|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
diff --git a/old_docs/API_docs_v86/methods/contacts_block.md b/old_docs/API_docs_v86/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v86/methods/contacts_block.md
+++ b/old_docs/API_docs_v86/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v86/methods/contacts_deleteContact.md b/old_docs/API_docs_v86/methods/contacts_deleteContact.md
index ba9569e4..a9321d64 100644
--- a/old_docs/API_docs_v86/methods/contacts_deleteContact.md
+++ b/old_docs/API_docs_v86/methods/contacts_deleteContact.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
contacts_Link = contacts.deleteContact({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v86/methods/contacts_deleteContacts.md b/old_docs/API_docs_v86/methods/contacts_deleteContacts.md
index bfc91fdd..3c8e90f0 100644
--- a/old_docs/API_docs_v86/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v86/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v86/methods/contacts_getStatuses.md b/old_docs/API_docs_v86/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v86/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v86/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v86/methods/contacts_getTopPeers.md b/old_docs/API_docs_v86/methods/contacts_getTopPeers.md
index 4dc13d08..9ad9ab01 100644
--- a/old_docs/API_docs_v86/methods/contacts_getTopPeers.md
+++ b/old_docs/API_docs_v86/methods/contacts_getTopPeers.md
@@ -50,10 +50,10 @@ Or, if you're into Lua:
contacts_TopPeers = contacts.getTopPeers({correspondents=Bool, bots_pm=Bool, bots_inline=Bool, phone_calls=Bool, groups=Bool, channels=Bool, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TYPES_EMPTY|No top peer type was provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TYPES_EMPTY|No top peer type was provided|
diff --git a/old_docs/API_docs_v86/methods/contacts_importCard.md b/old_docs/API_docs_v86/methods/contacts_importCard.md
index 15addde1..ed3d17fe 100644
--- a/old_docs/API_docs_v86/methods/contacts_importCard.md
+++ b/old_docs/API_docs_v86/methods/contacts_importCard.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
User = contacts.importCard({export_card={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|EXPORT_CARD_INVALID|Provided card is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EXPORT_CARD_INVALID|Provided card is invalid|
diff --git a/old_docs/API_docs_v86/methods/contacts_resetTopPeerRating.md b/old_docs/API_docs_v86/methods/contacts_resetTopPeerRating.md
index 43cf1685..787be177 100644
--- a/old_docs/API_docs_v86/methods/contacts_resetTopPeerRating.md
+++ b/old_docs/API_docs_v86/methods/contacts_resetTopPeerRating.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = contacts.resetTopPeerRating({category=TopPeerCategory, peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v86/methods/contacts_resolveUsername.md b/old_docs/API_docs_v86/methods/contacts_resolveUsername.md
index fab56bb1..68f709db 100644
--- a/old_docs/API_docs_v86/methods/contacts_resolveUsername.md
+++ b/old_docs/API_docs_v86/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [contacts\_ResolvedPeer](../types/contacts_ResolvedPeer.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$contacts_ResolvedPeer = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+contacts_ResolvedPeer = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v86/methods/contacts_search.md b/old_docs/API_docs_v86/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v86/methods/contacts_search.md
+++ b/old_docs/API_docs_v86/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v86/methods/contacts_unblock.md b/old_docs/API_docs_v86/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v86/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v86/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v86/methods/help_getCdnConfig.md b/old_docs/API_docs_v86/methods/help_getCdnConfig.md
index 9e047a1d..ba526365 100644
--- a/old_docs/API_docs_v86/methods/help_getCdnConfig.md
+++ b/old_docs/API_docs_v86/methods/help_getCdnConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
CdnConfig = help.getCdnConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v86/methods/help_getConfig.md b/old_docs/API_docs_v86/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v86/methods/help_getConfig.md
+++ b/old_docs/API_docs_v86/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v86/methods/initConnection.md b/old_docs/API_docs_v86/methods/initConnection.md
index 69d29401..5c4bfab9 100644
--- a/old_docs/API_docs_v86/methods/initConnection.md
+++ b/old_docs/API_docs_v86/methods/initConnection.md
@@ -50,11 +50,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', system_lang_code='string', lang_pack='string', lang_code='string', proxy=InputClientProxy, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v86/methods/invokeWithLayer.md b/old_docs/API_docs_v86/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/old_docs/API_docs_v86/methods/invokeWithLayer.md
+++ b/old_docs/API_docs_v86/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v86/methods/langpack_getDifference.md b/old_docs/API_docs_v86/methods/langpack_getDifference.md
index ed7e4028..70295776 100644
--- a/old_docs/API_docs_v86/methods/langpack_getDifference.md
+++ b/old_docs/API_docs_v86/methods/langpack_getDifference.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getDifference({from_version=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v86/methods/langpack_getLangPack.md b/old_docs/API_docs_v86/methods/langpack_getLangPack.md
index 55d30529..d2280670 100644
--- a/old_docs/API_docs_v86/methods/langpack_getLangPack.md
+++ b/old_docs/API_docs_v86/methods/langpack_getLangPack.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getLangPack({lang_pack='string', lang_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v86/methods/langpack_getLanguages.md b/old_docs/API_docs_v86/methods/langpack_getLanguages.md
index d4b9734e..686a50f5 100644
--- a/old_docs/API_docs_v86/methods/langpack_getLanguages.md
+++ b/old_docs/API_docs_v86/methods/langpack_getLanguages.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Vector_of_LangPackLanguage = langpack.getLanguages({lang_pack='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v86/methods/langpack_getStrings.md b/old_docs/API_docs_v86/methods/langpack_getStrings.md
index 65f65dfc..f0463eed 100644
--- a/old_docs/API_docs_v86/methods/langpack_getStrings.md
+++ b/old_docs/API_docs_v86/methods/langpack_getStrings.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Vector_of_LangPackString = langpack.getStrings({lang_pack='string', lang_code='string', keys={'string'}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_acceptEncryption.md b/old_docs/API_docs_v86/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v86/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v86/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v86/methods/messages_addChatUser.md b/old_docs/API_docs_v86/methods/messages_addChatUser.md
index bc0d6253..b5e164b2 100644
--- a/old_docs/API_docs_v86/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v86/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
Updates = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v86/methods/messages_checkChatInvite.md b/old_docs/API_docs_v86/methods/messages_checkChatInvite.md
index de28b09b..0d13d55e 100644
--- a/old_docs/API_docs_v86/methods/messages_checkChatInvite.md
+++ b/old_docs/API_docs_v86/methods/messages_checkChatInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ChatInvite = messages.checkChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_createChat.md b/old_docs/API_docs_v86/methods/messages_createChat.md
index 8f6e9672..b2623f1d 100644
--- a/old_docs/API_docs_v86/methods/messages_createChat.md
+++ b/old_docs/API_docs_v86/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v86/methods/messages_deleteChatUser.md b/old_docs/API_docs_v86/methods/messages_deleteChatUser.md
index 63529571..11b9b220 100644
--- a/old_docs/API_docs_v86/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v86/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v86/methods/messages_deleteHistory.md b/old_docs/API_docs_v86/methods/messages_deleteHistory.md
index 2ade177e..338c2cdf 100644
--- a/old_docs/API_docs_v86/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v86/methods/messages_deleteHistory.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({just_clear=Bool, peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_deleteMessages.md b/old_docs/API_docs_v86/methods/messages_deleteMessages.md
index 4c65080a..41517dd0 100644
--- a/old_docs/API_docs_v86/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v86/methods/messages_deleteMessages.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.deleteMessages({revoke=Bool, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v86/methods/messages_discardEncryption.md b/old_docs/API_docs_v86/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v86/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v86/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_editChatAdmin.md b/old_docs/API_docs_v86/methods/messages_editChatAdmin.md
index 2b4dc94c..6f6c1376 100644
--- a/old_docs/API_docs_v86/methods/messages_editChatAdmin.md
+++ b/old_docs/API_docs_v86/methods/messages_editChatAdmin.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.editChatAdmin({chat_id=InputPeer, user_id=InputUser, is_admin=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_editChatPhoto.md b/old_docs/API_docs_v86/methods/messages_editChatPhoto.md
index 2a82c232..a21a03b9 100644
--- a/old_docs/API_docs_v86/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v86/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Updates = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_editChatTitle.md b/old_docs/API_docs_v86/methods/messages_editChatTitle.md
index 2c338ad6..72f78741 100644
--- a/old_docs/API_docs_v86/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v86/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v86/methods/messages_editInlineBotMessage.md b/old_docs/API_docs_v86/methods/messages_editInlineBotMessage.md
index ea371589..c1b49029 100644
--- a/old_docs/API_docs_v86/methods/messages_editInlineBotMessage.md
+++ b/old_docs/API_docs_v86/methods/messages_editInlineBotMessage.md
@@ -98,11 +98,11 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
diff --git a/old_docs/API_docs_v86/methods/messages_editMessage.md b/old_docs/API_docs_v86/methods/messages_editMessage.md
index e6f55d08..ed3c9ada 100644
--- a/old_docs/API_docs_v86/methods/messages_editMessage.md
+++ b/old_docs/API_docs_v86/methods/messages_editMessage.md
@@ -99,20 +99,20 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v86/methods/messages_exportChatInvite.md b/old_docs/API_docs_v86/methods/messages_exportChatInvite.md
index f3449e79..bc6272e4 100644
--- a/old_docs/API_docs_v86/methods/messages_exportChatInvite.md
+++ b/old_docs/API_docs_v86/methods/messages_exportChatInvite.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
ExportedChatInvite = messages.exportChatInvite({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_faveSticker.md b/old_docs/API_docs_v86/methods/messages_faveSticker.md
index a8b1ab56..9f9f423d 100644
--- a/old_docs/API_docs_v86/methods/messages_faveSticker.md
+++ b/old_docs/API_docs_v86/methods/messages_faveSticker.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.faveSticker({id=InputDocument, unfave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_forwardMessages.md b/old_docs/API_docs_v86/methods/messages_forwardMessages.md
index d2453d05..743fa7a6 100644
--- a/old_docs/API_docs_v86/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v86/methods/messages_forwardMessages.md
@@ -48,29 +48,29 @@ Or, if you're into Lua:
Updates = messages.forwardMessages({silent=Bool, background=Bool, with_my_score=Bool, grouped=Bool, from_peer=InputPeer, id={int}, to_peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v86/methods/messages_getBotCallbackAnswer.md b/old_docs/API_docs_v86/methods/messages_getBotCallbackAnswer.md
index f97fa5b0..3f8cc23b 100644
--- a/old_docs/API_docs_v86/methods/messages_getBotCallbackAnswer.md
+++ b/old_docs/API_docs_v86/methods/messages_getBotCallbackAnswer.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
messages_BotCallbackAnswer = messages.getBotCallbackAnswer({game=Bool, peer=InputPeer, msg_id=int, data='bytes', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v86/methods/messages_getChats.md b/old_docs/API_docs_v86/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/old_docs/API_docs_v86/methods/messages_getChats.md
+++ b/old_docs/API_docs_v86/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_getCommonChats.md b/old_docs/API_docs_v86/methods/messages_getCommonChats.md
index 9470a0ee..cff23c3f 100644
--- a/old_docs/API_docs_v86/methods/messages_getCommonChats.md
+++ b/old_docs/API_docs_v86/methods/messages_getCommonChats.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_Chats = messages.getCommonChats({user_id=InputUser, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_getDhConfig.md b/old_docs/API_docs_v86/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v86/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v86/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_getDialogs.md b/old_docs/API_docs_v86/methods/messages_getDialogs.md
index 5d5a75ff..da3efe36 100644
--- a/old_docs/API_docs_v86/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v86/methods/messages_getDialogs.md
@@ -47,13 +47,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({exclude_pinned=Bool, offset_date=int, offset_id=int, offset_peer=InputPeer, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v86/methods/messages_getDocumentByHash.md b/old_docs/API_docs_v86/methods/messages_getDocumentByHash.md
index 73a235d5..06469c52 100644
--- a/old_docs/API_docs_v86/methods/messages_getDocumentByHash.md
+++ b/old_docs/API_docs_v86/methods/messages_getDocumentByHash.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Document = messages.getDocumentByHash({sha256='bytes', size=int, mime_type='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_getFullChat.md b/old_docs/API_docs_v86/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v86/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v86/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_getGameHighScores.md b/old_docs/API_docs_v86/methods/messages_getGameHighScores.md
index 249e1d09..5c484bbb 100644
--- a/old_docs/API_docs_v86/methods/messages_getGameHighScores.md
+++ b/old_docs/API_docs_v86/methods/messages_getGameHighScores.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
messages_HighScores = messages.getGameHighScores({peer=InputPeer, id=int, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v86/methods/messages_getHistory.md b/old_docs/API_docs_v86/methods/messages_getHistory.md
index d623a61e..a0389d7b 100644
--- a/old_docs/API_docs_v86/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v86/methods/messages_getHistory.md
@@ -49,16 +49,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset_id=int, offset_date=int, add_offset=int, limit=int, max_id=int, min_id=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v86/methods/messages_getInlineBotResults.md b/old_docs/API_docs_v86/methods/messages_getInlineBotResults.md
index 1efcb412..17d678b7 100644
--- a/old_docs/API_docs_v86/methods/messages_getInlineBotResults.md
+++ b/old_docs/API_docs_v86/methods/messages_getInlineBotResults.md
@@ -46,13 +46,13 @@ Or, if you're into Lua:
messages_BotResults = messages.getInlineBotResults({bot=InputUser, peer=InputPeer, geo_point=InputGeoPoint, query='string', offset='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
-|BOT_INVALID|This is not a valid bot|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
+|400|BOT_INVALID|This is not a valid bot|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v86/methods/messages_getInlineGameHighScores.md b/old_docs/API_docs_v86/methods/messages_getInlineGameHighScores.md
index e68c6db8..ac33b6b8 100644
--- a/old_docs/API_docs_v86/methods/messages_getInlineGameHighScores.md
+++ b/old_docs/API_docs_v86/methods/messages_getInlineGameHighScores.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_HighScores = messages.getInlineGameHighScores({id=InputBotInlineMessageID, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v86/methods/messages_getMessageEditData.md b/old_docs/API_docs_v86/methods/messages_getMessageEditData.md
index 7f1b7164..b907d78c 100644
--- a/old_docs/API_docs_v86/methods/messages_getMessageEditData.md
+++ b/old_docs/API_docs_v86/methods/messages_getMessageEditData.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_MessageEditData = messages.getMessageEditData({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v86/methods/messages_getMessagesViews.md b/old_docs/API_docs_v86/methods/messages_getMessagesViews.md
index 3d490315..143e568c 100644
--- a/old_docs/API_docs_v86/methods/messages_getMessagesViews.md
+++ b/old_docs/API_docs_v86/methods/messages_getMessagesViews.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
Vector_of_int = messages.getMessagesViews({peer=InputPeer, id={int}, increment=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_getPeerDialogs.md b/old_docs/API_docs_v86/methods/messages_getPeerDialogs.md
index 02eb9b43..17e0d11e 100644
--- a/old_docs/API_docs_v86/methods/messages_getPeerDialogs.md
+++ b/old_docs/API_docs_v86/methods/messages_getPeerDialogs.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPeerDialogs({peers={InputDialogPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_getPeerSettings.md b/old_docs/API_docs_v86/methods/messages_getPeerSettings.md
index 26dafb9b..69032ff5 100644
--- a/old_docs/API_docs_v86/methods/messages_getPeerSettings.md
+++ b/old_docs/API_docs_v86/methods/messages_getPeerSettings.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
PeerSettings = messages.getPeerSettings({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_getPinnedDialogs.md b/old_docs/API_docs_v86/methods/messages_getPinnedDialogs.md
index 828d622e..f106098d 100644
--- a/old_docs/API_docs_v86/methods/messages_getPinnedDialogs.md
+++ b/old_docs/API_docs_v86/methods/messages_getPinnedDialogs.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPinnedDialogs({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FOLDER_ID_INVALID|Invalid folder ID|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FOLDER_ID_INVALID|Invalid folder ID|
diff --git a/old_docs/API_docs_v86/methods/messages_getStickerSet.md b/old_docs/API_docs_v86/methods/messages_getStickerSet.md
index 57bce84d..487316cc 100644
--- a/old_docs/API_docs_v86/methods/messages_getStickerSet.md
+++ b/old_docs/API_docs_v86/methods/messages_getStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_StickerSet = messages.getStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_getUnreadMentions.md b/old_docs/API_docs_v86/methods/messages_getUnreadMentions.md
index 1fa1f269..923229eb 100644
--- a/old_docs/API_docs_v86/methods/messages_getUnreadMentions.md
+++ b/old_docs/API_docs_v86/methods/messages_getUnreadMentions.md
@@ -47,10 +47,10 @@ Or, if you're into Lua:
messages_Messages = messages.getUnreadMentions({peer=InputPeer, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_getWebPage.md b/old_docs/API_docs_v86/methods/messages_getWebPage.md
index ce51ff41..63ef5e93 100644
--- a/old_docs/API_docs_v86/methods/messages_getWebPage.md
+++ b/old_docs/API_docs_v86/methods/messages_getWebPage.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
WebPage = messages.getWebPage({url='string', hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|WC_CONVERT_URL_INVALID|WC convert URL invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|WC_CONVERT_URL_INVALID|WC convert URL invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_hideReportSpam.md b/old_docs/API_docs_v86/methods/messages_hideReportSpam.md
index c4bf7399..57756d2e 100644
--- a/old_docs/API_docs_v86/methods/messages_hideReportSpam.md
+++ b/old_docs/API_docs_v86/methods/messages_hideReportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.hideReportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_importChatInvite.md b/old_docs/API_docs_v86/methods/messages_importChatInvite.md
index 12120867..101b4b19 100644
--- a/old_docs/API_docs_v86/methods/messages_importChatInvite.md
+++ b/old_docs/API_docs_v86/methods/messages_importChatInvite.md
@@ -42,16 +42,16 @@ Or, if you're into Lua:
Updates = messages.importChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v86/methods/messages_installStickerSet.md b/old_docs/API_docs_v86/methods/messages_installStickerSet.md
index 21a57a85..67f2aca0 100644
--- a/old_docs/API_docs_v86/methods/messages_installStickerSet.md
+++ b/old_docs/API_docs_v86/methods/messages_installStickerSet.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_StickerSetInstallResult = messages.installStickerSet({stickerset=InputStickerSet, archived=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_migrateChat.md b/old_docs/API_docs_v86/methods/messages_migrateChat.md
index a72f4c11..ee4010eb 100644
--- a/old_docs/API_docs_v86/methods/messages_migrateChat.md
+++ b/old_docs/API_docs_v86/methods/messages_migrateChat.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
Updates = messages.migrateChat({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v86/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v86/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v86/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v86/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v86/methods/messages_readHistory.md b/old_docs/API_docs_v86/methods/messages_readHistory.md
index 2ad5cd09..a7f0eca7 100644
--- a/old_docs/API_docs_v86/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v86/methods/messages_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.readHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v86/methods/messages_receivedQueue.md b/old_docs/API_docs_v86/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v86/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v86/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v86/methods/messages_reorderPinnedDialogs.md b/old_docs/API_docs_v86/methods/messages_reorderPinnedDialogs.md
index 49aaca93..2452409a 100644
--- a/old_docs/API_docs_v86/methods/messages_reorderPinnedDialogs.md
+++ b/old_docs/API_docs_v86/methods/messages_reorderPinnedDialogs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.reorderPinnedDialogs({force=Bool, order={InputDialogPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_reportEncryptedSpam.md b/old_docs/API_docs_v86/methods/messages_reportEncryptedSpam.md
index 9b1e868b..aeac27ef 100644
--- a/old_docs/API_docs_v86/methods/messages_reportEncryptedSpam.md
+++ b/old_docs/API_docs_v86/methods/messages_reportEncryptedSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportEncryptedSpam({peer=InputEncryptedChat, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_reportSpam.md b/old_docs/API_docs_v86/methods/messages_reportSpam.md
index e92fba13..dc256e55 100644
--- a/old_docs/API_docs_v86/methods/messages_reportSpam.md
+++ b/old_docs/API_docs_v86/methods/messages_reportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_requestEncryption.md b/old_docs/API_docs_v86/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v86/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v86/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_saveDraft.md b/old_docs/API_docs_v86/methods/messages_saveDraft.md
index 791ce234..ea6d407e 100644
--- a/old_docs/API_docs_v86/methods/messages_saveDraft.md
+++ b/old_docs/API_docs_v86/methods/messages_saveDraft.md
@@ -89,10 +89,10 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_saveGif.md b/old_docs/API_docs_v86/methods/messages_saveGif.md
index f504ff9e..010e17ec 100644
--- a/old_docs/API_docs_v86/methods/messages_saveGif.md
+++ b/old_docs/API_docs_v86/methods/messages_saveGif.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.saveGif({id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|GIF_ID_INVALID|The provided GIF ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|GIF_ID_INVALID|The provided GIF ID is invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_saveRecentSticker.md b/old_docs/API_docs_v86/methods/messages_saveRecentSticker.md
index 98c74efd..072b6fe9 100644
--- a/old_docs/API_docs_v86/methods/messages_saveRecentSticker.md
+++ b/old_docs/API_docs_v86/methods/messages_saveRecentSticker.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.saveRecentSticker({attached=Bool, id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_search.md b/old_docs/API_docs_v86/methods/messages_search.md
index 83cb34c6..07529b40 100644
--- a/old_docs/API_docs_v86/methods/messages_search.md
+++ b/old_docs/API_docs_v86/methods/messages_search.md
@@ -53,16 +53,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({peer=InputPeer, q='string', from_id=InputUser, filter=MessagesFilter, min_date=int, max_date=int, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_searchGifs.md b/old_docs/API_docs_v86/methods/messages_searchGifs.md
index 7be4173b..1602d35e 100644
--- a/old_docs/API_docs_v86/methods/messages_searchGifs.md
+++ b/old_docs/API_docs_v86/methods/messages_searchGifs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_FoundGifs = messages.searchGifs({q='string', offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v86/methods/messages_searchGlobal.md b/old_docs/API_docs_v86/methods/messages_searchGlobal.md
index fb38398b..c8da163c 100644
--- a/old_docs/API_docs_v86/methods/messages_searchGlobal.md
+++ b/old_docs/API_docs_v86/methods/messages_searchGlobal.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
messages_Messages = messages.searchGlobal({q='string', offset_date=int, offset_peer=InputPeer, offset_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v86/methods/messages_sendEncrypted.md b/old_docs/API_docs_v86/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v86/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v86/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v86/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v86/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v86/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v86/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v86/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v86/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v86/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v86/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v86/methods/messages_sendInlineBotResult.md b/old_docs/API_docs_v86/methods/messages_sendInlineBotResult.md
index 9ffa02ae..a2b57f4d 100644
--- a/old_docs/API_docs_v86/methods/messages_sendInlineBotResult.md
+++ b/old_docs/API_docs_v86/methods/messages_sendInlineBotResult.md
@@ -48,15 +48,15 @@ Or, if you're into Lua:
Updates = messages.sendInlineBotResult({silent=Bool, background=Bool, clear_draft=Bool, peer=InputPeer, reply_to_msg_id=int, query_id=long, id='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INLINE_RESULT_EXPIRED|The inline query expired|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|QUERY_ID_EMPTY|The query ID is empty|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INLINE_RESULT_EXPIRED|The inline query expired|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|QUERY_ID_EMPTY|The query ID is empty|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v86/methods/messages_sendMedia.md b/old_docs/API_docs_v86/methods/messages_sendMedia.md
index 44c604c6..a2244583 100644
--- a/old_docs/API_docs_v86/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v86/methods/messages_sendMedia.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v86/methods/messages_sendMessage.md b/old_docs/API_docs_v86/methods/messages_sendMessage.md
index 5641ebc3..e0ab305d 100644
--- a/old_docs/API_docs_v86/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v86/methods/messages_sendMessage.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v86/methods/messages_sendMultiMedia.md b/old_docs/API_docs_v86/methods/messages_sendMultiMedia.md
index 9ebdcb88..5684a6d2 100644
--- a/old_docs/API_docs_v86/methods/messages_sendMultiMedia.md
+++ b/old_docs/API_docs_v86/methods/messages_sendMultiMedia.md
@@ -47,11 +47,11 @@ Or, if you're into Lua:
Updates = messages.sendMultiMedia({silent=Bool, background=Bool, clear_draft=Bool, peer=InputPeer, reply_to_msg_id=int, multi_media={InputSingleMedia}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_sendScreenshotNotification.md b/old_docs/API_docs_v86/methods/messages_sendScreenshotNotification.md
index 3f5bb36d..4e4e40f5 100644
--- a/old_docs/API_docs_v86/methods/messages_sendScreenshotNotification.md
+++ b/old_docs/API_docs_v86/methods/messages_sendScreenshotNotification.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = messages.sendScreenshotNotification({peer=InputPeer, reply_to_msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_setBotCallbackAnswer.md b/old_docs/API_docs_v86/methods/messages_setBotCallbackAnswer.md
index ed058b4f..630ca61c 100644
--- a/old_docs/API_docs_v86/methods/messages_setBotCallbackAnswer.md
+++ b/old_docs/API_docs_v86/methods/messages_setBotCallbackAnswer.md
@@ -52,11 +52,11 @@ Bool = messages.setBotCallbackAnswer({alert=Bool, query_id=long, message='string
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|URL_INVALID|Invalid URL provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|URL_INVALID|Invalid URL provided|
diff --git a/old_docs/API_docs_v86/methods/messages_setBotPrecheckoutResults.md b/old_docs/API_docs_v86/methods/messages_setBotPrecheckoutResults.md
index cc615123..d6e0e61b 100644
--- a/old_docs/API_docs_v86/methods/messages_setBotPrecheckoutResults.md
+++ b/old_docs/API_docs_v86/methods/messages_setBotPrecheckoutResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotPrecheckoutResults({success=Bool, query_id=long, error='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ERROR_TEXT_EMPTY|The provided error message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ERROR_TEXT_EMPTY|The provided error message is empty|
diff --git a/old_docs/API_docs_v86/methods/messages_setBotShippingResults.md b/old_docs/API_docs_v86/methods/messages_setBotShippingResults.md
index f3a86f4f..adc4f64f 100644
--- a/old_docs/API_docs_v86/methods/messages_setBotShippingResults.md
+++ b/old_docs/API_docs_v86/methods/messages_setBotShippingResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotShippingResults({query_id=long, error='string', shipping_options={ShippingOption}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v86/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v86/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v86/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_setGameScore.md b/old_docs/API_docs_v86/methods/messages_setGameScore.md
index 548ee889..429b04c6 100644
--- a/old_docs/API_docs_v86/methods/messages_setGameScore.md
+++ b/old_docs/API_docs_v86/methods/messages_setGameScore.md
@@ -47,12 +47,12 @@ Or, if you're into Lua:
Updates = messages.setGameScore({edit_message=Bool, force=Bool, peer=InputPeer, id=int, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v86/methods/messages_setInlineBotResults.md b/old_docs/API_docs_v86/methods/messages_setInlineBotResults.md
index ab388e39..df4c30d4 100644
--- a/old_docs/API_docs_v86/methods/messages_setInlineBotResults.md
+++ b/old_docs/API_docs_v86/methods/messages_setInlineBotResults.md
@@ -48,23 +48,23 @@ Or, if you're into Lua:
Bool = messages.setInlineBotResults({gallery=Bool, private=Bool, query_id=long, results={InputBotInlineResult}, cache_time=int, next_offset='string', switch_pm=InlineBotSwitchPM, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ARTICLE_TITLE_EMPTY|The title of the article is empty|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|PHOTO_INVALID|Photo invalid|
-|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
-|QUERY_ID_INVALID|The query ID is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|RESULT_TYPE_INVALID|Result type invalid|
-|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
-|START_PARAM_INVALID|Start parameter invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ARTICLE_TITLE_EMPTY|The title of the article is empty|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|PHOTO_INVALID|Photo invalid|
+|400|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|RESULT_TYPE_INVALID|Result type invalid|
+|400|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
+|400|START_PARAM_INVALID|Start parameter invalid|
+|403|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v86/methods/messages_setInlineGameScore.md b/old_docs/API_docs_v86/methods/messages_setInlineGameScore.md
index 5eeb1540..62b163d5 100644
--- a/old_docs/API_docs_v86/methods/messages_setInlineGameScore.md
+++ b/old_docs/API_docs_v86/methods/messages_setInlineGameScore.md
@@ -46,11 +46,11 @@ Or, if you're into Lua:
Bool = messages.setInlineGameScore({edit_message=Bool, force=Bool, id=InputBotInlineMessageID, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v86/methods/messages_setTyping.md b/old_docs/API_docs_v86/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v86/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v86/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v86/methods/messages_startBot.md b/old_docs/API_docs_v86/methods/messages_startBot.md
index aa2b2d00..4bf12aa6 100644
--- a/old_docs/API_docs_v86/methods/messages_startBot.md
+++ b/old_docs/API_docs_v86/methods/messages_startBot.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = messages.startBot({bot=InputUser, peer=InputPeer, start_param='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INVALID|This is not a valid bot|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|START_PARAM_EMPTY|The start parameter is empty|
-|START_PARAM_INVALID|Start parameter invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INVALID|This is not a valid bot|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|START_PARAM_EMPTY|The start parameter is empty|
+|400|START_PARAM_INVALID|Start parameter invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_toggleChatAdmins.md b/old_docs/API_docs_v86/methods/messages_toggleChatAdmins.md
index 7851806d..8ea6e65e 100644
--- a/old_docs/API_docs_v86/methods/messages_toggleChatAdmins.md
+++ b/old_docs/API_docs_v86/methods/messages_toggleChatAdmins.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.toggleChatAdmins({chat_id=InputPeer, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v86/methods/messages_toggleDialogPin.md b/old_docs/API_docs_v86/methods/messages_toggleDialogPin.md
index 22c6d15d..ff46ef21 100644
--- a/old_docs/API_docs_v86/methods/messages_toggleDialogPin.md
+++ b/old_docs/API_docs_v86/methods/messages_toggleDialogPin.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.toggleDialogPin({pinned=Bool, peer=InputDialogPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_uninstallStickerSet.md b/old_docs/API_docs_v86/methods/messages_uninstallStickerSet.md
index 59abc510..6b7a2006 100644
--- a/old_docs/API_docs_v86/methods/messages_uninstallStickerSet.md
+++ b/old_docs/API_docs_v86/methods/messages_uninstallStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.uninstallStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v86/methods/messages_uploadMedia.md b/old_docs/API_docs_v86/methods/messages_uploadMedia.md
index afc806fe..09fc074c 100644
--- a/old_docs/API_docs_v86/methods/messages_uploadMedia.md
+++ b/old_docs/API_docs_v86/methods/messages_uploadMedia.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
MessageMedia = messages.uploadMedia({peer=InputPeer, media=InputMedia, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v86/methods/payments_getPaymentForm.md b/old_docs/API_docs_v86/methods/payments_getPaymentForm.md
index e8e04f37..4c28121f 100644
--- a/old_docs/API_docs_v86/methods/payments_getPaymentForm.md
+++ b/old_docs/API_docs_v86/methods/payments_getPaymentForm.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentForm = payments.getPaymentForm({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v86/methods/payments_getPaymentReceipt.md b/old_docs/API_docs_v86/methods/payments_getPaymentReceipt.md
index acb1c209..0e2f76a8 100644
--- a/old_docs/API_docs_v86/methods/payments_getPaymentReceipt.md
+++ b/old_docs/API_docs_v86/methods/payments_getPaymentReceipt.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentReceipt = payments.getPaymentReceipt({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v86/methods/payments_sendPaymentForm.md b/old_docs/API_docs_v86/methods/payments_sendPaymentForm.md
index b8fa905d..1910ede8 100644
--- a/old_docs/API_docs_v86/methods/payments_sendPaymentForm.md
+++ b/old_docs/API_docs_v86/methods/payments_sendPaymentForm.md
@@ -45,10 +45,10 @@ Or, if you're into Lua:
payments_PaymentResult = payments.sendPaymentForm({msg_id=int, requested_info_id='string', shipping_option_id='string', credentials=InputPaymentCredentials, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v86/methods/payments_validateRequestedInfo.md b/old_docs/API_docs_v86/methods/payments_validateRequestedInfo.md
index 3b9da7e6..f18e1660 100644
--- a/old_docs/API_docs_v86/methods/payments_validateRequestedInfo.md
+++ b/old_docs/API_docs_v86/methods/payments_validateRequestedInfo.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
payments_ValidatedRequestedInfo = payments.validateRequestedInfo({save=Bool, msg_id=int, info=PaymentRequestedInfo, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v86/methods/phone_acceptCall.md b/old_docs/API_docs_v86/methods/phone_acceptCall.md
index b75ac65b..f5c58f01 100644
--- a/old_docs/API_docs_v86/methods/phone_acceptCall.md
+++ b/old_docs/API_docs_v86/methods/phone_acceptCall.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->acceptCall(['peer' => InputPhoneCall, 'g_b' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.acceptCall({peer=InputPhoneCall, g_b='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
diff --git a/old_docs/API_docs_v86/methods/phone_confirmCall.md b/old_docs/API_docs_v86/methods/phone_confirmCall.md
index 1a75563d..468307cc 100644
--- a/old_docs/API_docs_v86/methods/phone_confirmCall.md
+++ b/old_docs/API_docs_v86/methods/phone_confirmCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->confirmCall(['peer' => InputPhoneCall, 'g_a' => 'bytes', 'key_fingerprint' => long, 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.confirmCall({peer=InputPhoneCall, g_a='bytes', key_fingerprint=long, protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v86/methods/phone_discardCall.md b/old_docs/API_docs_v86/methods/phone_discardCall.md
index e50456eb..ffaa18ea 100644
--- a/old_docs/API_docs_v86/methods/phone_discardCall.md
+++ b/old_docs/API_docs_v86/methods/phone_discardCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|duration|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|reason|[PhoneCallDiscardReason](../types/PhoneCallDiscardReason.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|connection\_id|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [Updates](../types/Updates.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Updates = $MadelineProto->phone->discardCall(['peer' => InputPhoneCall, 'duration' => int, 'reason' => PhoneCallDiscardReason, 'connection_id' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Updates = phone.discardCall({peer=InputPhoneCall, duration=int, reason=PhoneCallDiscardReason, connection_id=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v86/methods/phone_receivedCall.md b/old_docs/API_docs_v86/methods/phone_receivedCall.md
index c43bc8ac..6091424b 100644
--- a/old_docs/API_docs_v86/methods/phone_receivedCall.md
+++ b/old_docs/API_docs_v86/methods/phone_receivedCall.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Bool = phone.receivedCall({peer=InputPhoneCall, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_ALREADY_DECLINED|The call was already declined|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v86/methods/phone_requestCall.md b/old_docs/API_docs_v86/methods/phone_requestCall.md
index 9b8df564..c8e828f2 100644
--- a/old_docs/API_docs_v86/methods/phone_requestCall.md
+++ b/old_docs/API_docs_v86/methods/phone_requestCall.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Optional|
+|g\_a\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->requestCall(['user_id' => InputUser, 'g_a_hash' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.requestCall({user_id=InputUser, g_a_hash='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
+|400|PARTICIPANT_VERSION_OUTDATED|The other participant does not use an up to date telegram client with support for calls|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|403|USER_IS_BLOCKED|You were blocked by this user|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v86/methods/phone_saveCallDebug.md b/old_docs/API_docs_v86/methods/phone_saveCallDebug.md
index 8acbc353..1e793c05 100644
--- a/old_docs/API_docs_v86/methods/phone_saveCallDebug.md
+++ b/old_docs/API_docs_v86/methods/phone_saveCallDebug.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = phone.saveCallDebug({peer=InputPhoneCall, debug=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
-|DATA_JSON_INVALID|The provided JSON data is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|DATA_JSON_INVALID|The provided JSON data is invalid|
diff --git a/old_docs/API_docs_v86/methods/phone_setCallRating.md b/old_docs/API_docs_v86/methods/phone_setCallRating.md
index 9bc6bdd0..9daed209 100644
--- a/old_docs/API_docs_v86/methods/phone_setCallRating.md
+++ b/old_docs/API_docs_v86/methods/phone_setCallRating.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Updates = phone.setCallRating({peer=InputPhoneCall, rating=int, comment='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v86/methods/photos_getUserPhotos.md b/old_docs/API_docs_v86/methods/photos_getUserPhotos.md
index 57f5772b..a01f3180 100644
--- a/old_docs/API_docs_v86/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v86/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v86/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v86/methods/photos_updateProfilePhoto.md
index cca2fe30..f7c91ec6 100644
--- a/old_docs/API_docs_v86/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v86/methods/photos_updateProfilePhoto.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v86/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v86/methods/photos_uploadProfilePhoto.md
index 457bade8..badde2de 100644
--- a/old_docs/API_docs_v86/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v86/methods/photos_uploadProfilePhoto.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v86/methods/stickers_addStickerToSet.md b/old_docs/API_docs_v86/methods/stickers_addStickerToSet.md
index 78e8437c..b1fa2aad 100644
--- a/old_docs/API_docs_v86/methods/stickers_addStickerToSet.md
+++ b/old_docs/API_docs_v86/methods/stickers_addStickerToSet.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.addStickerToSet({stickerset=InputStickerSet, sticker=InputStickerSetItem, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v86/methods/stickers_changeStickerPosition.md b/old_docs/API_docs_v86/methods/stickers_changeStickerPosition.md
index cddc1cbb..98dde67e 100644
--- a/old_docs/API_docs_v86/methods/stickers_changeStickerPosition.md
+++ b/old_docs/API_docs_v86/methods/stickers_changeStickerPosition.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.changeStickerPosition({sticker=InputDocument, position=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/old_docs/API_docs_v86/methods/stickers_createStickerSet.md b/old_docs/API_docs_v86/methods/stickers_createStickerSet.md
index 41e4ad11..741e0ad6 100644
--- a/old_docs/API_docs_v86/methods/stickers_createStickerSet.md
+++ b/old_docs/API_docs_v86/methods/stickers_createStickerSet.md
@@ -46,18 +46,18 @@ Or, if you're into Lua:
messages_StickerSet = stickers.createStickerSet({masks=Bool, user_id=InputUser, title='string', short_name='string', stickers={InputStickerSetItem}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|PACK_SHORT_NAME_INVALID|Short pack name invalid|
-|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|STICKER_EMOJI_INVALID|Sticker emoji invalid|
-|STICKER_FILE_INVALID|Sticker file invalid|
-|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
-|STICKERS_EMPTY|No sticker provided|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|PACK_SHORT_NAME_INVALID|Short pack name invalid|
+|400|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|STICKER_EMOJI_INVALID|Sticker emoji invalid|
+|400|STICKER_FILE_INVALID|Sticker file invalid|
+|400|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
+|400|STICKERS_EMPTY|No sticker provided|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v86/methods/stickers_removeStickerFromSet.md b/old_docs/API_docs_v86/methods/stickers_removeStickerFromSet.md
index ea4621f2..d1fc4339 100644
--- a/old_docs/API_docs_v86/methods/stickers_removeStickerFromSet.md
+++ b/old_docs/API_docs_v86/methods/stickers_removeStickerFromSet.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.removeStickerFromSet({sticker=InputDocument, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/old_docs/API_docs_v86/methods/updates_getChannelDifference.md b/old_docs/API_docs_v86/methods/updates_getChannelDifference.md
index 6fa79529..9735c14a 100644
--- a/old_docs/API_docs_v86/methods/updates_getChannelDifference.md
+++ b/old_docs/API_docs_v86/methods/updates_getChannelDifference.md
@@ -7,8 +7,56 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|force|[Bool](../types/Bool.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|filter|[ChannelMessagesFilter](../types/ChannelMessagesFilter.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_ChannelDifference](../types/updates_ChannelDifference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_ChannelDifference = $MadelineProto->updates->getChannelDifference(['force' => Bool, 'channel' => InputChannel, 'filter' => ChannelMessagesFilter, 'pts' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_ChannelDifference = updates.getChannelDifference({force=Bool, channel=InputChannel, filter=ChannelMessagesFilter, pts=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|400|RANGES_INVALID|Invalid range provided|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v86/methods/updates_getDifference.md b/old_docs/API_docs_v86/methods/updates_getDifference.md
index 33e7d7f2..bcfac4e2 100644
--- a/old_docs/API_docs_v86/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v86/methods/updates_getDifference.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|pts\_total\_limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'pts_total_limit' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, pts_total_limit=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v86/methods/updates_getState.md b/old_docs/API_docs_v86/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v86/methods/updates_getState.md
+++ b/old_docs/API_docs_v86/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v86/methods/upload_getCdnFile.md b/old_docs/API_docs_v86/methods/upload_getCdnFile.md
index 5e5b3f43..be9ad311 100644
--- a/old_docs/API_docs_v86/methods/upload_getCdnFile.md
+++ b/old_docs/API_docs_v86/methods/upload_getCdnFile.md
@@ -7,8 +7,40 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_CdnFile](../types/upload_CdnFile.md)
+
+### Can bots use this method: **NO**
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_CdnFile = $MadelineProto->upload->getCdnFile(['file_token' => 'bytes', 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_CdnFile = upload.getCdnFile({file_token='bytes', offset=int, limit=int, })
+```
+
diff --git a/old_docs/API_docs_v86/methods/upload_getCdnFileHashes.md b/old_docs/API_docs_v86/methods/upload_getCdnFileHashes.md
index ea6a8e75..d957578e 100644
--- a/old_docs/API_docs_v86/methods/upload_getCdnFileHashes.md
+++ b/old_docs/API_docs_v86/methods/upload_getCdnFileHashes.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->getCdnFileHashes(['file_token' => 'bytes', 'offset' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.getCdnFileHashes({file_token='bytes', offset=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/old_docs/API_docs_v86/methods/upload_getFile.md b/old_docs/API_docs_v86/methods/upload_getFile.md
index c72e6090..d8b433d6 100644
--- a/old_docs/API_docs_v86/methods/upload_getFile.md
+++ b/old_docs/API_docs_v86/methods/upload_getFile.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v86/methods/upload_getFileHashes.md b/old_docs/API_docs_v86/methods/upload_getFileHashes.md
index debeb60d..e03dd5c5 100644
--- a/old_docs/API_docs_v86/methods/upload_getFileHashes.md
+++ b/old_docs/API_docs_v86/methods/upload_getFileHashes.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+Get file hashes
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | The file | Yes|
+|offset|[int](../types/int.md) | Offset | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->getFileHashes(['location' => InputFileLocation, 'offset' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.getFileHashes({location=InputFileLocation, offset=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LOCATION_INVALID|The provided location is invalid|
diff --git a/old_docs/API_docs_v86/methods/upload_getWebFile.md b/old_docs/API_docs_v86/methods/upload_getWebFile.md
index 21179a66..7b63f96c 100644
--- a/old_docs/API_docs_v86/methods/upload_getWebFile.md
+++ b/old_docs/API_docs_v86/methods/upload_getWebFile.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
upload_WebFile = upload.getWebFile({location=InputWebFileLocation, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LOCATION_INVALID|The provided location is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LOCATION_INVALID|The provided location is invalid|
diff --git a/old_docs/API_docs_v86/methods/upload_reuploadCdnFile.md b/old_docs/API_docs_v86/methods/upload_reuploadCdnFile.md
index cc20d5e3..f531557c 100644
--- a/old_docs/API_docs_v86/methods/upload_reuploadCdnFile.md
+++ b/old_docs/API_docs_v86/methods/upload_reuploadCdnFile.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|request\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->reuploadCdnFile(['file_token' => 'bytes', 'request_token' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.reuploadCdnFile({file_token='bytes', request_token='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/old_docs/API_docs_v86/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v86/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v86/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v86/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v86/methods/upload_saveFilePart.md b/old_docs/API_docs_v86/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v86/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v86/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v86/methods/users_getFullUser.md b/old_docs/API_docs_v86/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v86/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v86/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v86/methods/users_getUsers.md b/old_docs/API_docs_v86/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v86/methods/users_getUsers.md
+++ b/old_docs/API_docs_v86/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v86/methods/users_setSecureValueErrors.md b/old_docs/API_docs_v86/methods/users_setSecureValueErrors.md
index 40e398ab..661137fb 100644
--- a/old_docs/API_docs_v86/methods/users_setSecureValueErrors.md
+++ b/old_docs/API_docs_v86/methods/users_setSecureValueErrors.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = users.setSecureValueErrors({id=InputUser, errors={SecureValueError}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v89/methods/README.md b/old_docs/API_docs_v89/methods/README.md
index 21f6982c..a161eab6 100644
--- a/old_docs/API_docs_v89/methods/README.md
+++ b/old_docs/API_docs_v89/methods/README.md
@@ -30,495 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Accept telegram passport authorization: account.acceptAuthorization
-
-* Accept telegram's TOS: help.acceptTermsOfService
-
-* Add a sticker set: messages.installStickerSet
-
-* Add a sticker to favorites: messages.faveSticker
-
-* Add a sticker to recent stickers: messages.saveRecentSticker
-
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add phone number as contact: contacts.importContacts
-
-* Add sticker to stickerset: stickers.addStickerToSet
-
-* Add users to channel/supergroup: channels.inviteToChannel
-
-* Allow or disallow any user to invite users to this channel/supergroup: channels.toggleInvites
-
-* Block a user: contacts.block
-
-* Bots only: get telegram passport authorization form: account.getAuthorizationForm
-
-* Bots only: send payment form: payments.sendPaymentForm
-
-* Bots only: set precheckout results: messages.setBotPrecheckoutResults
-
-* Bots only: set shipping results: messages.setBotShippingResults
-
-* Bots only: set the callback answer (after a button was clicked): messages.setBotCallbackAnswer
-
-* Bots only: set the results of an inline query: messages.setInlineBotResults
-
-* Call inline bot: messages.getInlineBotResults
-
-* Cancel password recovery email: account.cancelPasswordEmail
-
-* Change notification settings: account.updateNotifySettings
-
-* Change sticker position in photo: stickers.changeStickerPosition
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if about to edit a message or a media caption: messages.getMessageEditData
-
-* Check if an invitation link is valid: messages.checkChatInvite
-
-* Check if this username is available: account.checkUsername
-
-* Check if this username is free and can be assigned to a channel/supergroup: channels.checkUsername
-
-* Clear all drafts: messages.clearAllDrafts
-
-* Clear all recent stickers: messages.clearRecentStickers
-
-* Clear saved payments info: payments.clearSavedInfo
-
-* Confirm password recovery using email: account.confirmPasswordEmail
-
-* Confirm this phone number is associated to this account, obtain phone_code_hash from sendConfirmPhoneCode: account.confirmPhone
-
-* Convert chat to supergroup: messages.migrateChat
-
-* Create a chat (not supergroup): messages.createChat
-
-* Create channel/supergroup: channels.createChannel
-
-* Create stickerset: stickers.createStickerSet
-
-* Delete a certain session: account.resetAuthorization
-
-* Delete a certain telegram web login authorization: account.resetWebAuthorization
-
-* Delete a channel/supergroup: channels.deleteChannel
-
-* Delete a contact: contacts.deleteContact
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete all messages of a user in a channel/supergroup: channels.deleteUserHistory
-
-* Delete all temporary authorization keys except the ones provided: auth.dropTempAuthKeys
-
-* Delete channel/supergroup messages: channels.deleteMessages
-
-* Delete chat history: messages.deleteHistory
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete secure telegram passport value: account.deleteSecureValue
-
-* Delete the history of a supergroup/channel: channels.deleteHistory
-
-* Delete this account: account.deleteAccount
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Download a file through telegram: upload.getWebFile
-
-* Edit a message: messages.editMessage
-
-* Edit a sent inline message: messages.editInlineBotMessage
-
-* Edit admin permissions of a user in a channel/supergroup: channels.editAdmin
-
-* Edit admin permissions: messages.editChatAdmin
-
-* Edit the about text of a channel/supergroup: channels.editAbout
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the photo of a supergroup/channel: channels.editPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Edit the title of a supergroup/channel: channels.editTitle
-
-* Edit user info: help.editUserInfo
-
-* Enable all users are admins in normal groups (not supergroups): messages.toggleChatAdmins
-
-* Enable or disable hidden history for new channel/supergroup users: channels.togglePreHistoryHidden
-
-* Export chat invite : messages.exportChatInvite
-
-* Export contact as card: contacts.exportCard
-
-* Export the invite link of a channel: channels.exportInvite
-
-* Find a sticker set: messages.searchStickerSets
-
-* Finish account exporting session: account.finishTakeoutSession
-
-* Forward messages: messages.forwardMessages
-
-* Get CDN configuration: help.getCdnConfig
-
-* Get a stickerset: messages.getStickerSet
-
-* Get account TTL: account.getAccountTTL
-
-* Get admin log of a channel/supergroup: channels.getAdminLog
-
-* Get all archived stickers: messages.getArchivedStickers
-
-* Get all channels you left: channels.getLeftChannels
-
-* Get all chats (not supergroups or channels): messages.getAllChats
-
-* Get all contacts: contacts.getContacts
-
-* Get all logged-in authorizations: account.getAuthorizations
-
-* Get all message drafts: messages.getAllDrafts
-
-* Get all secure telegram passport values: account.getAllSecureValues
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get all supergroups/channels where you're admin: channels.getAdminedPublicChannels
-
-* Get and increase message views: messages.getMessagesViews
-
-* Get available languages: langpack.getLanguages
-
-* Get blocked users: contacts.getBlocked
-
-* Get call configuration: phone.getCallConfig
-
-* Get channel/supergroup messages: channels.getMessages
-
-* Get channel/supergroup participants (you should use `$MadelineProto->get_pwr_chat($id)` instead): channels.getParticipants
-
-* Get chats in common with a user: messages.getCommonChats
-
-* Get contacts by IDs: contacts.getContactIDs
-
-* Get deep link info: help.getDeepLinkInfo
-
-* Get dialog info of peers: messages.getPeerDialogs
-
-* Get dialogs marked as unread manually: messages.getDialogUnreadMarks
-
-* Get document by SHA256 hash: messages.getDocumentByHash
-
-* Get favorite stickers: messages.getFavedStickers
-
-* Get featured stickers: messages.getFeaturedStickers
-
-* Get high scores of a game sent in an inline message: messages.getInlineGameHighScores
-
-* Get high scores of a game: messages.getGameHighScores
-
-* Get info about a certain channel/supergroup participant: channels.getParticipant
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about multiple channels/supergroups: channels.getChannels
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get information about the current proxy: help.getProxyData
-
-* Get invitation text: help.getInviteText
-
-* Get language pack strings: langpack.getStrings
-
-* Get language pack updates: langpack.getDifference
-
-* Get language pack: langpack.getLangPack
-
-* Get language: langpack.getLanguage
-
-* Get masks: messages.getMaskStickers
-
-* Get message ranges to fetch: messages.getSplitRanges
-
-* Get messages: messages.getMessages
-
-* Get most used chats: contacts.getTopPeers
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get passport config: help.getPassportConfig
-
-* Get payment form: payments.getPaymentForm
-
-* Get payment receipt: payments.getPaymentReceipt
-
-* Get pinned dialogs: messages.getPinnedDialogs
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get recent locations: messages.getRecentLocations
-
-* Get recent stickers: messages.getRecentStickers
-
-* Get recent t.me URLs: help.getRecentMeUrls
-
-* Get saved contacts: contacts.getSaved
-
-* Get saved gifs: messages.getSavedGifs
-
-* Get saved payments info: payments.getSavedInfo
-
-* Get secure value for telegram passport: account.getSecureValue
-
-* Get server configuration: help.getConfig
-
-* Get stickers attachable to images: messages.getAttachedStickers
-
-* Get stickers: messages.getStickers
-
-* Get support name: help.getSupportName
-
-* Get telegram web login authorizations: account.getWebAuthorizations
-
-* Get temporary password for buying products through bots: account.getTmpPassword
-
-* Get the callback answer of a bot (after clicking a button): messages.getBotCallbackAnswer
-
-* Get the changelog of this app: help.getAppChangelog
-
-* Get the current password: account.getPassword
-
-* Get the link of a message in a channel: channels.exportMessageLink
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Get the settings of apeer: messages.getPeerSettings
-
-* Get unread mentions: messages.getUnreadMentions
-
-* Get updated TOS: help.getTermsOfServiceUpdate
-
-* Get user info: help.getUserInfo
-
-* Get webpage preview: messages.getWebPage
-
-* Get webpage preview: messages.getWebPagePreview
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Global message search: messages.searchGlobal
-
-* Hide report spam popup: messages.hideReportSpam
-
-* Import card as contact: contacts.importCard
-
-* Import chat invite: messages.importChatInvite
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Invalidate sent phone code: auth.cancelCode
-
-* Invoke method from takeout session: invokeWithTakeout
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invoke with messages range: invokeWithMessagesRange
-
-* Invoke with method without returning updates in the socket: invokeWithoutUpdates
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Join a channel/supergroup: channels.joinChannel
-
-* Kick or ban a user from a channel/supergroup: channels.editBanned
-
-* Leave a channel/supergroup: channels.leaveChannel
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark channel/supergroup history as read: channels.readHistory
-
-* Mark channel/supergroup messages as read: channels.readMessageContents
-
-* Mark dialog as unread : messages.markDialogUnread
-
-* Mark mentions as read: messages.readMentions
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Mark new featured stickers as read: messages.readFeaturedStickers
-
-* Notify server that you received a call (server will refuse all incoming calls until the current call is over): phone.receivedCall
-
-* Pin or unpin dialog: messages.toggleDialogPin
-
-* Register device for push notifications: account.registerDevice
-
-* Remove a sticker set: messages.uninstallStickerSet
-
-* Remove sticker from stickerset: stickers.removeStickerFromSet
-
-* Reorder pinned dialogs: messages.reorderPinnedDialogs
-
-* Reorder sticker sets: messages.reorderStickerSets
-
-* Report a message in a supergroup/channel for spam: channels.reportSpam
-
-* Report a message: messages.report
-
-* Report a peer for spam: messages.reportSpam
-
-* Report for spam a secret chat: messages.reportEncryptedSpam
-
-* Report for spam: account.reportPeer
-
-* Resend password recovery email: account.resendPasswordEmail
-
-* Resend the SMS verification code: auth.resendCode
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Reset all telegram web login authorizations: account.resetWebAuthorizations
-
-* Reset saved contacts: contacts.resetSaved
-
-* Reset top peer rating for a certain category/peer: contacts.resetTopPeerRating
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Save a GIF: messages.saveGif
-
-* Save a message draft: messages.saveDraft
-
-* Save call debugging info: phone.saveCallDebug
-
-* Save telegram passport secure value: account.saveSecureValue
-
-* Search contacts: contacts.search
-
-* Search gifs: messages.searchGifs
-
-* Search peers or messages: messages.search
-
-* Send a custom request to the bot API: bots.sendCustomRequest
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send an album: messages.sendMultiMedia
-
-* Send an email to recover the 2FA password: auth.requestPasswordRecovery
-
-* Send confirmation phone code: account.sendConfirmPhoneCode
-
-* Send email verification code: account.sendVerifyEmailCode
-
-* Send inline bot result obtained with messages.getInlineBotResults to the chat: messages.sendInlineBotResult
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send phone verification code: account.sendVerifyPhoneCode
-
-* Send screenshot notification: messages.sendScreenshotNotification
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Send webhook request via bot API: bots.answerWebhookJSONQuery
-
-* Set account TTL: account.setAccountTTL
-
-* Set phone call rating: phone.setCallRating
-
-* Set privacy settings: account.setPrivacy
-
-* Set secure value error for telegram passport: users.setSecureValueErrors
-
-* Set the game score of an inline message: messages.setInlineGameScore
-
-* Set the game score: messages.setGameScore
-
-* Set the pinned message of a channel/supergroup: channels.updatePinnedMessage
-
-* Set the supergroup/channel stickerpack: channels.setStickers
-
-* Set the update status of webhook: help.setBotUpdatesStatus
-
-* Start a bot: messages.startBot
-
-* Start account exporting session: account.initTakeoutSession
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Toggle channel signatures: channels.toggleSignatures
-
-* Toggle top peers: contacts.toggleTopPeers
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update pinned message: messages.updatePinnedMessage
-
-* Update profile info: account.updateProfile
-
-* Update the username of a supergroup/channel: channels.updateUsername
-
-* Update this user's username: account.updateUsername
-
-* Upload a file without sending it to anyone: messages.uploadMedia
-
-* Upload a secret chat file without sending it to anyone: messages.uploadEncryptedFile
-
-* Upload profile photo: photos.uploadProfilePhoto
-
-* Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
-
-* Validate requested payment info: payments.validateRequestedInfo
-
-* Verify email address: account.verifyEmail
-
-* Verify phone number: account.verifyPhone
-
diff --git a/old_docs/API_docs_v89/methods/account_changePhone.md b/old_docs/API_docs_v89/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/old_docs/API_docs_v89/methods/account_changePhone.md
+++ b/old_docs/API_docs_v89/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v89/methods/account_checkUsername.md b/old_docs/API_docs_v89/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v89/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v89/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v89/methods/account_confirmPhone.md b/old_docs/API_docs_v89/methods/account_confirmPhone.md
index b730c2dc..c114cd20 100644
--- a/old_docs/API_docs_v89/methods/account_confirmPhone.md
+++ b/old_docs/API_docs_v89/methods/account_confirmPhone.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = account.confirmPhone({phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_HASH_INVALID|Code hash invalid|
-|PHONE_CODE_EMPTY|phone_code is missing|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_HASH_INVALID|Code hash invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
diff --git a/old_docs/API_docs_v89/methods/account_getNotifySettings.md b/old_docs/API_docs_v89/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v89/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v89/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v89/methods/account_getPasswordSettings.md b/old_docs/API_docs_v89/methods/account_getPasswordSettings.md
index 8ebb78ee..e41c6b67 100644
--- a/old_docs/API_docs_v89/methods/account_getPasswordSettings.md
+++ b/old_docs/API_docs_v89/methods/account_getPasswordSettings.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+Get the current 2FA settings
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password|[InputCheckPasswordSRP](../types/InputCheckPasswordSRP.md) | You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [account\_PasswordSettings](../types/account_PasswordSettings.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$account_PasswordSettings = $MadelineProto->account->getPasswordSettings(['password' => InputCheckPasswordSRP, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+account_PasswordSettings = account.getPasswordSettings({password=InputCheckPasswordSRP, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v89/methods/account_getPrivacy.md b/old_docs/API_docs_v89/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/old_docs/API_docs_v89/methods/account_getPrivacy.md
+++ b/old_docs/API_docs_v89/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v89/methods/account_getTmpPassword.md b/old_docs/API_docs_v89/methods/account_getTmpPassword.md
index 3a29d97a..0ae4061f 100644
--- a/old_docs/API_docs_v89/methods/account_getTmpPassword.md
+++ b/old_docs/API_docs_v89/methods/account_getTmpPassword.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
account_TmpPassword = account.getTmpPassword({password=InputCheckPasswordSRP, period=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_HASH_INVALID|The provided password hash is invalid|
-|TMP_PASSWORD_DISABLED|The temporary password is disabled|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
+|400|TMP_PASSWORD_DISABLED|The temporary password is disabled|
diff --git a/old_docs/API_docs_v89/methods/account_registerDevice.md b/old_docs/API_docs_v89/methods/account_registerDevice.md
index 7c34f6c4..a8e8c2a2 100644
--- a/old_docs/API_docs_v89/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v89/methods/account_registerDevice.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({token_type=int, token='string', app_sandbox=Bool, secret='bytes', other_uids={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v89/methods/account_reportPeer.md b/old_docs/API_docs_v89/methods/account_reportPeer.md
index a203c900..87b080eb 100644
--- a/old_docs/API_docs_v89/methods/account_reportPeer.md
+++ b/old_docs/API_docs_v89/methods/account_reportPeer.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.reportPeer({peer=InputPeer, reason=ReportReason, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v89/methods/account_resetAuthorization.md b/old_docs/API_docs_v89/methods/account_resetAuthorization.md
index c950992c..e8e8ecc4 100644
--- a/old_docs/API_docs_v89/methods/account_resetAuthorization.md
+++ b/old_docs/API_docs_v89/methods/account_resetAuthorization.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.resetAuthorization({hash=long, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v89/methods/account_sendChangePhoneCode.md b/old_docs/API_docs_v89/methods/account_sendChangePhoneCode.md
index d5be60ef..08e5e86e 100644
--- a/old_docs/API_docs_v89/methods/account_sendChangePhoneCode.md
+++ b/old_docs/API_docs_v89/methods/account_sendChangePhoneCode.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendChangePhoneCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v89/methods/account_sendConfirmPhoneCode.md b/old_docs/API_docs_v89/methods/account_sendConfirmPhoneCode.md
index 028a1fdc..9fa7b57e 100644
--- a/old_docs/API_docs_v89/methods/account_sendConfirmPhoneCode.md
+++ b/old_docs/API_docs_v89/methods/account_sendConfirmPhoneCode.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendConfirmPhoneCode({allow_flashcall=Bool, hash='string', current_number=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v89/methods/account_setAccountTTL.md b/old_docs/API_docs_v89/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/old_docs/API_docs_v89/methods/account_setAccountTTL.md
+++ b/old_docs/API_docs_v89/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/old_docs/API_docs_v89/methods/account_setPrivacy.md b/old_docs/API_docs_v89/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/old_docs/API_docs_v89/methods/account_setPrivacy.md
+++ b/old_docs/API_docs_v89/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v89/methods/account_unregisterDevice.md b/old_docs/API_docs_v89/methods/account_unregisterDevice.md
index 13d11e88..e39f0811 100644
--- a/old_docs/API_docs_v89/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v89/methods/account_unregisterDevice.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', other_uids={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v89/methods/account_updateNotifySettings.md b/old_docs/API_docs_v89/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v89/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v89/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v89/methods/account_updatePasswordSettings.md b/old_docs/API_docs_v89/methods/account_updatePasswordSettings.md
index 80f27228..7afb81ea 100644
--- a/old_docs/API_docs_v89/methods/account_updatePasswordSettings.md
+++ b/old_docs/API_docs_v89/methods/account_updatePasswordSettings.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password|[InputCheckPasswordSRP](../types/InputCheckPasswordSRP.md) | You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|new\_settings|[account\_PasswordInputSettings](../types/account_PasswordInputSettings.md) | New 2FA settings | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->account->updatePasswordSettings(['password' => InputCheckPasswordSRP, 'new_settings' => account_PasswordInputSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = account.updatePasswordSettings({password=InputCheckPasswordSRP, new_settings=account_PasswordInputSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EMAIL_UNCONFIRMED|Email unconfirmed|
+|400|EMAIL_UNCONFIRMED_X|The provided email isn't confirmed, X is the length of the verification code that was just sent to the email.|
+|400|NEW_SALT_INVALID|The new salt is invalid|
+|400|NEW_SETTINGS_INVALID|The new settings are invalid|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v89/methods/account_updateProfile.md b/old_docs/API_docs_v89/methods/account_updateProfile.md
index af5b6a0f..0d74c5e5 100644
--- a/old_docs/API_docs_v89/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v89/methods/account_updateProfile.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v89/methods/account_updateStatus.md b/old_docs/API_docs_v89/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v89/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v89/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v89/methods/account_updateUsername.md b/old_docs/API_docs_v89/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v89/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v89/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v89/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v89/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v89/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v89/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v89/methods/auth_cancelCode.md b/old_docs/API_docs_v89/methods/auth_cancelCode.md
index fcbd7713..a69e0118 100644
--- a/old_docs/API_docs_v89/methods/auth_cancelCode.md
+++ b/old_docs/API_docs_v89/methods/auth_cancelCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = auth.cancelCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v89/methods/auth_checkPassword.md b/old_docs/API_docs_v89/methods/auth_checkPassword.md
index 8d76c483..ad2a88a2 100644
--- a/old_docs/API_docs_v89/methods/auth_checkPassword.md
+++ b/old_docs/API_docs_v89/methods/auth_checkPassword.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password|[InputCheckPasswordSRP](../types/InputCheckPasswordSRP.md) | You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->checkPassword(['password' => InputCheckPasswordSRP, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.checkPassword({password=InputCheckPasswordSRP, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v89/methods/auth_exportAuthorization.md b/old_docs/API_docs_v89/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v89/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v89/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v89/methods/auth_importAuthorization.md b/old_docs/API_docs_v89/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v89/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v89/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v89/methods/auth_importBotAuthorization.md b/old_docs/API_docs_v89/methods/auth_importBotAuthorization.md
index 1a98c1b9..98a2f8ca 100644
--- a/old_docs/API_docs_v89/methods/auth_importBotAuthorization.md
+++ b/old_docs/API_docs_v89/methods/auth_importBotAuthorization.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|api\_id|[int](../types/int.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_hash|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|bot\_auth\_token|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importBotAuthorization(['api_id' => int, 'api_hash' => 'string', 'bot_auth_token' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importBotAuthorization({api_id=int, api_hash='string', bot_auth_token='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ACCESS_TOKEN_EXPIRED|Access token expired|
+|400|ACCESS_TOKEN_INVALID|Access token invalid|
+|400|API_ID_INVALID|API ID invalid|
diff --git a/old_docs/API_docs_v89/methods/auth_logOut.md b/old_docs/API_docs_v89/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v89/methods/auth_logOut.md
+++ b/old_docs/API_docs_v89/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v89/methods/auth_recoverPassword.md b/old_docs/API_docs_v89/methods/auth_recoverPassword.md
index 83ff5aed..d4bad9c5 100644
--- a/old_docs/API_docs_v89/methods/auth_recoverPassword.md
+++ b/old_docs/API_docs_v89/methods/auth_recoverPassword.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
auth_Authorization = auth.recoverPassword({code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_EMPTY|The provided code is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_EMPTY|The provided code is empty|
diff --git a/old_docs/API_docs_v89/methods/auth_requestPasswordRecovery.md b/old_docs/API_docs_v89/methods/auth_requestPasswordRecovery.md
index 1864bbb0..b6ad57ba 100644
--- a/old_docs/API_docs_v89/methods/auth_requestPasswordRecovery.md
+++ b/old_docs/API_docs_v89/methods/auth_requestPasswordRecovery.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
auth_PasswordRecovery = auth.requestPasswordRecovery({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_EMPTY|The provided password is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_EMPTY|The provided password is empty|
diff --git a/old_docs/API_docs_v89/methods/auth_resendCode.md b/old_docs/API_docs_v89/methods/auth_resendCode.md
index ff7868ea..ec730d75 100644
--- a/old_docs/API_docs_v89/methods/auth_resendCode.md
+++ b/old_docs/API_docs_v89/methods/auth_resendCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = auth.resendCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v89/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v89/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v89/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v89/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v89/methods/auth_sendCode.md b/old_docs/API_docs_v89/methods/auth_sendCode.md
index 9afebb55..1e9d1a4e 100644
--- a/old_docs/API_docs_v89/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v89/methods/auth_sendCode.md
@@ -7,8 +7,59 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|allow\_flashcall|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|current\_number|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['allow_flashcall' => Bool, 'phone_number' => 'string', 'current_number' => Bool, 'api_id' => int, 'api_hash' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, api_id=int, api_hash='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v89/methods/auth_signIn.md b/old_docs/API_docs_v89/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v89/methods/auth_signIn.md
+++ b/old_docs/API_docs_v89/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v89/methods/auth_signUp.md b/old_docs/API_docs_v89/methods/auth_signUp.md
index 15960145..31154486 100644
--- a/old_docs/API_docs_v89/methods/auth_signUp.md
+++ b/old_docs/API_docs_v89/methods/auth_signUp.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', phone_code='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v89/methods/bots_answerWebhookJSONQuery.md b/old_docs/API_docs_v89/methods/bots_answerWebhookJSONQuery.md
index ae0fa6d9..f2233514 100644
--- a/old_docs/API_docs_v89/methods/bots_answerWebhookJSONQuery.md
+++ b/old_docs/API_docs_v89/methods/bots_answerWebhookJSONQuery.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = bots.answerWebhookJSONQuery({query_id=long, data=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v89/methods/bots_sendCustomRequest.md b/old_docs/API_docs_v89/methods/bots_sendCustomRequest.md
index c1fd8183..8a6a2df5 100644
--- a/old_docs/API_docs_v89/methods/bots_sendCustomRequest.md
+++ b/old_docs/API_docs_v89/methods/bots_sendCustomRequest.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
DataJSON = bots.sendCustomRequest({custom_method='string', params=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v89/methods/channels_checkUsername.md b/old_docs/API_docs_v89/methods/channels_checkUsername.md
index 483a2f6f..52365d34 100644
--- a/old_docs/API_docs_v89/methods/channels_checkUsername.md
+++ b/old_docs/API_docs_v89/methods/channels_checkUsername.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Bool = channels.checkUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v89/methods/channels_createChannel.md b/old_docs/API_docs_v89/methods/channels_createChannel.md
index b924e6a6..ecaee0ef 100644
--- a/old_docs/API_docs_v89/methods/channels_createChannel.md
+++ b/old_docs/API_docs_v89/methods/channels_createChannel.md
@@ -45,12 +45,12 @@ Or, if you're into Lua:
Updates = channels.createChannel({broadcast=Bool, megagroup=Bool, title='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_TITLE_EMPTY|No chat title provided|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
+|406|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v89/methods/channels_deleteChannel.md b/old_docs/API_docs_v89/methods/channels_deleteChannel.md
index 53a9c23d..1b8d2d48 100644
--- a/old_docs/API_docs_v89/methods/channels_deleteChannel.md
+++ b/old_docs/API_docs_v89/methods/channels_deleteChannel.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Updates = channels.deleteChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v89/methods/channels_deleteMessages.md b/old_docs/API_docs_v89/methods/channels_deleteMessages.md
index f76a9ad1..463ebad0 100644
--- a/old_docs/API_docs_v89/methods/channels_deleteMessages.md
+++ b/old_docs/API_docs_v89/methods/channels_deleteMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_AffectedMessages = channels.deleteMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v89/methods/channels_deleteUserHistory.md b/old_docs/API_docs_v89/methods/channels_deleteUserHistory.md
index 0a4e7d82..33905a7e 100644
--- a/old_docs/API_docs_v89/methods/channels_deleteUserHistory.md
+++ b/old_docs/API_docs_v89/methods/channels_deleteUserHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedHistory = channels.deleteUserHistory({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v89/methods/channels_editAbout.md b/old_docs/API_docs_v89/methods/channels_editAbout.md
index 47111668..d5e090e0 100644
--- a/old_docs/API_docs_v89/methods/channels_editAbout.md
+++ b/old_docs/API_docs_v89/methods/channels_editAbout.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Bool = channels.editAbout({channel=InputChannel, about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
-|CHAT_ABOUT_TOO_LONG|Chat about too long|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
+|400|CHAT_ABOUT_TOO_LONG|Chat about too long|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v89/methods/channels_editAdmin.md b/old_docs/API_docs_v89/methods/channels_editAdmin.md
index 43858599..edb7cf55 100644
--- a/old_docs/API_docs_v89/methods/channels_editAdmin.md
+++ b/old_docs/API_docs_v89/methods/channels_editAdmin.md
@@ -44,19 +44,19 @@ Or, if you're into Lua:
Updates = channels.editAdmin({channel=InputChannel, user_id=InputUser, admin_rights=ChannelAdminRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ADMINS_TOO_MUCH|There are too many admins|
-|BOT_CHANNELS_NA|Bots can't edit admin privileges|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
-|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ADMINS_TOO_MUCH|There are too many admins|
+|400|BOT_CHANNELS_NA|Bots can't edit admin privileges|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
+|403|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v89/methods/channels_editBanned.md b/old_docs/API_docs_v89/methods/channels_editBanned.md
index cffb653e..1fd5f597 100644
--- a/old_docs/API_docs_v89/methods/channels_editBanned.md
+++ b/old_docs/API_docs_v89/methods/channels_editBanned.md
@@ -44,14 +44,14 @@ Or, if you're into Lua:
Updates = channels.editBanned({channel=InputChannel, user_id=InputUser, banned_rights=ChannelBannedRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ADMIN_INVALID|You're not an admin|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ADMIN_INVALID|You're not an admin|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v89/methods/channels_editPhoto.md b/old_docs/API_docs_v89/methods/channels_editPhoto.md
index bec0ba48..caef32d5 100644
--- a/old_docs/API_docs_v89/methods/channels_editPhoto.md
+++ b/old_docs/API_docs_v89/methods/channels_editPhoto.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editPhoto({channel=InputChannel, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|PHOTO_INVALID|Photo invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|PHOTO_INVALID|Photo invalid|
diff --git a/old_docs/API_docs_v89/methods/channels_editTitle.md b/old_docs/API_docs_v89/methods/channels_editTitle.md
index b5efeb39..d7cb33da 100644
--- a/old_docs/API_docs_v89/methods/channels_editTitle.md
+++ b/old_docs/API_docs_v89/methods/channels_editTitle.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editTitle({channel=InputChannel, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v89/methods/channels_exportInvite.md b/old_docs/API_docs_v89/methods/channels_exportInvite.md
index 0918b3e7..9d578deb 100644
--- a/old_docs/API_docs_v89/methods/channels_exportInvite.md
+++ b/old_docs/API_docs_v89/methods/channels_exportInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ExportedChatInvite = channels.exportInvite({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INVITE_HASH_EXPIRED|The invite link has expired|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
diff --git a/old_docs/API_docs_v89/methods/channels_exportMessageLink.md b/old_docs/API_docs_v89/methods/channels_exportMessageLink.md
index 5dea54a7..fc2f248b 100644
--- a/old_docs/API_docs_v89/methods/channels_exportMessageLink.md
+++ b/old_docs/API_docs_v89/methods/channels_exportMessageLink.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
ExportedMessageLink = channels.exportMessageLink({channel=InputChannel, id=int, grouped=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v89/methods/channels_getAdminLog.md b/old_docs/API_docs_v89/methods/channels_getAdminLog.md
index 377c7320..adb87748 100644
--- a/old_docs/API_docs_v89/methods/channels_getAdminLog.md
+++ b/old_docs/API_docs_v89/methods/channels_getAdminLog.md
@@ -48,12 +48,12 @@ Or, if you're into Lua:
channels_AdminLogResults = channels.getAdminLog({channel=InputChannel, q='string', events_filter=ChannelAdminLogEventsFilter, admins={InputUser}, max_id=long, min_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v89/methods/channels_getChannels.md b/old_docs/API_docs_v89/methods/channels_getChannels.md
index 78d50641..95d7a188 100644
--- a/old_docs/API_docs_v89/methods/channels_getChannels.md
+++ b/old_docs/API_docs_v89/methods/channels_getChannels.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = channels.getChannels({id={InputChannel}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v89/methods/channels_getFullChannel.md b/old_docs/API_docs_v89/methods/channels_getFullChannel.md
index 45a8ec72..ebd53de4 100644
--- a/old_docs/API_docs_v89/methods/channels_getFullChannel.md
+++ b/old_docs/API_docs_v89/methods/channels_getFullChannel.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->channels->getFullChannel(['channel' => InputChannel, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = channels.getFullChannel({channel=InputChannel, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v89/methods/channels_getLeftChannels.md b/old_docs/API_docs_v89/methods/channels_getLeftChannels.md
index 2d256964..fac7ae07 100644
--- a/old_docs/API_docs_v89/methods/channels_getLeftChannels.md
+++ b/old_docs/API_docs_v89/methods/channels_getLeftChannels.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_Chats = channels.getLeftChannels({offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TAKEOUT_REQUIRED|A takeout session has to be initialized, first|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|TAKEOUT_REQUIRED|A takeout session has to be initialized, first|
diff --git a/old_docs/API_docs_v89/methods/channels_getMessages.md b/old_docs/API_docs_v89/methods/channels_getMessages.md
index 90cf5a47..f1ae0a4d 100644
--- a/old_docs/API_docs_v89/methods/channels_getMessages.md
+++ b/old_docs/API_docs_v89/methods/channels_getMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_Messages = channels.getMessages({channel=InputChannel, id={InputMessage}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
diff --git a/old_docs/API_docs_v89/methods/channels_getParticipant.md b/old_docs/API_docs_v89/methods/channels_getParticipant.md
index 6633114f..808156fd 100644
--- a/old_docs/API_docs_v89/methods/channels_getParticipant.md
+++ b/old_docs/API_docs_v89/methods/channels_getParticipant.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
channels_ChannelParticipant = channels.getParticipant({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v89/methods/channels_getParticipants.md b/old_docs/API_docs_v89/methods/channels_getParticipants.md
index 5ff242e6..fb7a39df 100644
--- a/old_docs/API_docs_v89/methods/channels_getParticipants.md
+++ b/old_docs/API_docs_v89/methods/channels_getParticipants.md
@@ -46,14 +46,14 @@ Or, if you're into Lua:
channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, filter=ChannelParticipantsFilter, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v89/methods/channels_inviteToChannel.md b/old_docs/API_docs_v89/methods/channels_inviteToChannel.md
index f7093f13..d8c5e88a 100644
--- a/old_docs/API_docs_v89/methods/channels_inviteToChannel.md
+++ b/old_docs/API_docs_v89/methods/channels_inviteToChannel.md
@@ -43,25 +43,25 @@ Or, if you're into Lua:
Updates = channels.inviteToChannel({channel=InputChannel, users={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
-|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_BLOCKED|User blocked|
-|USER_BOT|Bots can only be admins in channels.|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_KICKED|This user was kicked from this supergroup/channel|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
+|400|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_BLOCKED|User blocked|
+|400|USER_BOT|Bots can only be admins in channels.|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_KICKED|This user was kicked from this supergroup/channel|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v89/methods/channels_joinChannel.md b/old_docs/API_docs_v89/methods/channels_joinChannel.md
index b056031a..a4a7c177 100644
--- a/old_docs/API_docs_v89/methods/channels_joinChannel.md
+++ b/old_docs/API_docs_v89/methods/channels_joinChannel.md
@@ -42,15 +42,15 @@ Or, if you're into Lua:
Updates = channels.joinChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
diff --git a/old_docs/API_docs_v89/methods/channels_leaveChannel.md b/old_docs/API_docs_v89/methods/channels_leaveChannel.md
index fdea13ba..6538d443 100644
--- a/old_docs/API_docs_v89/methods/channels_leaveChannel.md
+++ b/old_docs/API_docs_v89/methods/channels_leaveChannel.md
@@ -42,14 +42,14 @@ Or, if you're into Lua:
Updates = channels.leaveChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
-|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
diff --git a/old_docs/API_docs_v89/methods/channels_readHistory.md b/old_docs/API_docs_v89/methods/channels_readHistory.md
index 93dc075f..3532dae0 100644
--- a/old_docs/API_docs_v89/methods/channels_readHistory.md
+++ b/old_docs/API_docs_v89/methods/channels_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readHistory({channel=InputChannel, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v89/methods/channels_readMessageContents.md b/old_docs/API_docs_v89/methods/channels_readMessageContents.md
index 80ddf2b0..8cd8c620 100644
--- a/old_docs/API_docs_v89/methods/channels_readMessageContents.md
+++ b/old_docs/API_docs_v89/methods/channels_readMessageContents.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readMessageContents({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v89/methods/channels_reportSpam.md b/old_docs/API_docs_v89/methods/channels_reportSpam.md
index db80676a..7e273cc5 100644
--- a/old_docs/API_docs_v89/methods/channels_reportSpam.md
+++ b/old_docs/API_docs_v89/methods/channels_reportSpam.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
Bool = channels.reportSpam({channel=InputChannel, user_id=InputUser, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
diff --git a/old_docs/API_docs_v89/methods/channels_setStickers.md b/old_docs/API_docs_v89/methods/channels_setStickers.md
index 10cd68bf..c9b95527 100644
--- a/old_docs/API_docs_v89/methods/channels_setStickers.md
+++ b/old_docs/API_docs_v89/methods/channels_setStickers.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.setStickers({channel=InputChannel, stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PARTICIPANTS_TOO_FEW|Not enough participants|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PARTICIPANTS_TOO_FEW|Not enough participants|
diff --git a/old_docs/API_docs_v89/methods/channels_toggleInvites.md b/old_docs/API_docs_v89/methods/channels_toggleInvites.md
index e5d3fba1..6266d30b 100644
--- a/old_docs/API_docs_v89/methods/channels_toggleInvites.md
+++ b/old_docs/API_docs_v89/methods/channels_toggleInvites.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.toggleInvites({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v89/methods/channels_toggleSignatures.md b/old_docs/API_docs_v89/methods/channels_toggleSignatures.md
index cdfc0fda..f8624946 100644
--- a/old_docs/API_docs_v89/methods/channels_toggleSignatures.md
+++ b/old_docs/API_docs_v89/methods/channels_toggleSignatures.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = channels.toggleSignatures({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v89/methods/channels_updatePinnedMessage.md b/old_docs/API_docs_v89/methods/channels_updatePinnedMessage.md
index 53733a22..37d7c3c0 100644
--- a/old_docs/API_docs_v89/methods/channels_updatePinnedMessage.md
+++ b/old_docs/API_docs_v89/methods/channels_updatePinnedMessage.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = channels.updatePinnedMessage({silent=Bool, channel=InputChannel, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v89/methods/channels_updateUsername.md b/old_docs/API_docs_v89/methods/channels_updateUsername.md
index 677712f9..48d250e6 100644
--- a/old_docs/API_docs_v89/methods/channels_updateUsername.md
+++ b/old_docs/API_docs_v89/methods/channels_updateUsername.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Bool = channels.updateUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_OCCUPIED|The provided username is already occupied|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
diff --git a/old_docs/API_docs_v89/methods/contacts_block.md b/old_docs/API_docs_v89/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v89/methods/contacts_block.md
+++ b/old_docs/API_docs_v89/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v89/methods/contacts_deleteContact.md b/old_docs/API_docs_v89/methods/contacts_deleteContact.md
index ba9569e4..a9321d64 100644
--- a/old_docs/API_docs_v89/methods/contacts_deleteContact.md
+++ b/old_docs/API_docs_v89/methods/contacts_deleteContact.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
contacts_Link = contacts.deleteContact({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v89/methods/contacts_deleteContacts.md b/old_docs/API_docs_v89/methods/contacts_deleteContacts.md
index bfc91fdd..3c8e90f0 100644
--- a/old_docs/API_docs_v89/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v89/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v89/methods/contacts_getStatuses.md b/old_docs/API_docs_v89/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v89/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v89/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v89/methods/contacts_getTopPeers.md b/old_docs/API_docs_v89/methods/contacts_getTopPeers.md
index 4dc13d08..9ad9ab01 100644
--- a/old_docs/API_docs_v89/methods/contacts_getTopPeers.md
+++ b/old_docs/API_docs_v89/methods/contacts_getTopPeers.md
@@ -50,10 +50,10 @@ Or, if you're into Lua:
contacts_TopPeers = contacts.getTopPeers({correspondents=Bool, bots_pm=Bool, bots_inline=Bool, phone_calls=Bool, groups=Bool, channels=Bool, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TYPES_EMPTY|No top peer type was provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TYPES_EMPTY|No top peer type was provided|
diff --git a/old_docs/API_docs_v89/methods/contacts_importCard.md b/old_docs/API_docs_v89/methods/contacts_importCard.md
index 15addde1..ed3d17fe 100644
--- a/old_docs/API_docs_v89/methods/contacts_importCard.md
+++ b/old_docs/API_docs_v89/methods/contacts_importCard.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
User = contacts.importCard({export_card={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|EXPORT_CARD_INVALID|Provided card is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EXPORT_CARD_INVALID|Provided card is invalid|
diff --git a/old_docs/API_docs_v89/methods/contacts_resetTopPeerRating.md b/old_docs/API_docs_v89/methods/contacts_resetTopPeerRating.md
index 43cf1685..787be177 100644
--- a/old_docs/API_docs_v89/methods/contacts_resetTopPeerRating.md
+++ b/old_docs/API_docs_v89/methods/contacts_resetTopPeerRating.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = contacts.resetTopPeerRating({category=TopPeerCategory, peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v89/methods/contacts_resolveUsername.md b/old_docs/API_docs_v89/methods/contacts_resolveUsername.md
index fab56bb1..68f709db 100644
--- a/old_docs/API_docs_v89/methods/contacts_resolveUsername.md
+++ b/old_docs/API_docs_v89/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [contacts\_ResolvedPeer](../types/contacts_ResolvedPeer.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$contacts_ResolvedPeer = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+contacts_ResolvedPeer = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v89/methods/contacts_search.md b/old_docs/API_docs_v89/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v89/methods/contacts_search.md
+++ b/old_docs/API_docs_v89/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v89/methods/contacts_unblock.md b/old_docs/API_docs_v89/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v89/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v89/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v89/methods/help_getCdnConfig.md b/old_docs/API_docs_v89/methods/help_getCdnConfig.md
index 9e047a1d..ba526365 100644
--- a/old_docs/API_docs_v89/methods/help_getCdnConfig.md
+++ b/old_docs/API_docs_v89/methods/help_getCdnConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
CdnConfig = help.getCdnConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v89/methods/help_getConfig.md b/old_docs/API_docs_v89/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v89/methods/help_getConfig.md
+++ b/old_docs/API_docs_v89/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v89/methods/initConnection.md b/old_docs/API_docs_v89/methods/initConnection.md
index 69d29401..5c4bfab9 100644
--- a/old_docs/API_docs_v89/methods/initConnection.md
+++ b/old_docs/API_docs_v89/methods/initConnection.md
@@ -50,11 +50,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', system_lang_code='string', lang_pack='string', lang_code='string', proxy=InputClientProxy, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v89/methods/invokeWithLayer.md b/old_docs/API_docs_v89/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/old_docs/API_docs_v89/methods/invokeWithLayer.md
+++ b/old_docs/API_docs_v89/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v89/methods/langpack_getDifference.md b/old_docs/API_docs_v89/methods/langpack_getDifference.md
index 436846b6..68e16858 100644
--- a/old_docs/API_docs_v89/methods/langpack_getDifference.md
+++ b/old_docs/API_docs_v89/methods/langpack_getDifference.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getDifference({lang_code='string', from_version=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v89/methods/langpack_getLangPack.md b/old_docs/API_docs_v89/methods/langpack_getLangPack.md
index 55d30529..d2280670 100644
--- a/old_docs/API_docs_v89/methods/langpack_getLangPack.md
+++ b/old_docs/API_docs_v89/methods/langpack_getLangPack.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getLangPack({lang_pack='string', lang_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v89/methods/langpack_getLanguages.md b/old_docs/API_docs_v89/methods/langpack_getLanguages.md
index d4b9734e..686a50f5 100644
--- a/old_docs/API_docs_v89/methods/langpack_getLanguages.md
+++ b/old_docs/API_docs_v89/methods/langpack_getLanguages.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Vector_of_LangPackLanguage = langpack.getLanguages({lang_pack='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v89/methods/langpack_getStrings.md b/old_docs/API_docs_v89/methods/langpack_getStrings.md
index 65f65dfc..f0463eed 100644
--- a/old_docs/API_docs_v89/methods/langpack_getStrings.md
+++ b/old_docs/API_docs_v89/methods/langpack_getStrings.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Vector_of_LangPackString = langpack.getStrings({lang_pack='string', lang_code='string', keys={'string'}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_acceptEncryption.md b/old_docs/API_docs_v89/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v89/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v89/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v89/methods/messages_addChatUser.md b/old_docs/API_docs_v89/methods/messages_addChatUser.md
index bc0d6253..b5e164b2 100644
--- a/old_docs/API_docs_v89/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v89/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
Updates = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v89/methods/messages_checkChatInvite.md b/old_docs/API_docs_v89/methods/messages_checkChatInvite.md
index de28b09b..0d13d55e 100644
--- a/old_docs/API_docs_v89/methods/messages_checkChatInvite.md
+++ b/old_docs/API_docs_v89/methods/messages_checkChatInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ChatInvite = messages.checkChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_createChat.md b/old_docs/API_docs_v89/methods/messages_createChat.md
index 8f6e9672..b2623f1d 100644
--- a/old_docs/API_docs_v89/methods/messages_createChat.md
+++ b/old_docs/API_docs_v89/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v89/methods/messages_deleteChatUser.md b/old_docs/API_docs_v89/methods/messages_deleteChatUser.md
index 63529571..11b9b220 100644
--- a/old_docs/API_docs_v89/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v89/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v89/methods/messages_deleteHistory.md b/old_docs/API_docs_v89/methods/messages_deleteHistory.md
index 2ade177e..338c2cdf 100644
--- a/old_docs/API_docs_v89/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v89/methods/messages_deleteHistory.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({just_clear=Bool, peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_deleteMessages.md b/old_docs/API_docs_v89/methods/messages_deleteMessages.md
index 4c65080a..41517dd0 100644
--- a/old_docs/API_docs_v89/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v89/methods/messages_deleteMessages.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.deleteMessages({revoke=Bool, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v89/methods/messages_discardEncryption.md b/old_docs/API_docs_v89/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v89/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v89/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_editChatAdmin.md b/old_docs/API_docs_v89/methods/messages_editChatAdmin.md
index 2b4dc94c..6f6c1376 100644
--- a/old_docs/API_docs_v89/methods/messages_editChatAdmin.md
+++ b/old_docs/API_docs_v89/methods/messages_editChatAdmin.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.editChatAdmin({chat_id=InputPeer, user_id=InputUser, is_admin=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_editChatPhoto.md b/old_docs/API_docs_v89/methods/messages_editChatPhoto.md
index 2a82c232..a21a03b9 100644
--- a/old_docs/API_docs_v89/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v89/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Updates = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_editChatTitle.md b/old_docs/API_docs_v89/methods/messages_editChatTitle.md
index 2c338ad6..72f78741 100644
--- a/old_docs/API_docs_v89/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v89/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v89/methods/messages_editInlineBotMessage.md b/old_docs/API_docs_v89/methods/messages_editInlineBotMessage.md
index ea371589..c1b49029 100644
--- a/old_docs/API_docs_v89/methods/messages_editInlineBotMessage.md
+++ b/old_docs/API_docs_v89/methods/messages_editInlineBotMessage.md
@@ -98,11 +98,11 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
diff --git a/old_docs/API_docs_v89/methods/messages_editMessage.md b/old_docs/API_docs_v89/methods/messages_editMessage.md
index e6f55d08..ed3c9ada 100644
--- a/old_docs/API_docs_v89/methods/messages_editMessage.md
+++ b/old_docs/API_docs_v89/methods/messages_editMessage.md
@@ -99,20 +99,20 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v89/methods/messages_exportChatInvite.md b/old_docs/API_docs_v89/methods/messages_exportChatInvite.md
index f3449e79..bc6272e4 100644
--- a/old_docs/API_docs_v89/methods/messages_exportChatInvite.md
+++ b/old_docs/API_docs_v89/methods/messages_exportChatInvite.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
ExportedChatInvite = messages.exportChatInvite({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_faveSticker.md b/old_docs/API_docs_v89/methods/messages_faveSticker.md
index a8b1ab56..9f9f423d 100644
--- a/old_docs/API_docs_v89/methods/messages_faveSticker.md
+++ b/old_docs/API_docs_v89/methods/messages_faveSticker.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.faveSticker({id=InputDocument, unfave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_forwardMessages.md b/old_docs/API_docs_v89/methods/messages_forwardMessages.md
index d2453d05..743fa7a6 100644
--- a/old_docs/API_docs_v89/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v89/methods/messages_forwardMessages.md
@@ -48,29 +48,29 @@ Or, if you're into Lua:
Updates = messages.forwardMessages({silent=Bool, background=Bool, with_my_score=Bool, grouped=Bool, from_peer=InputPeer, id={int}, to_peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v89/methods/messages_getBotCallbackAnswer.md b/old_docs/API_docs_v89/methods/messages_getBotCallbackAnswer.md
index f97fa5b0..3f8cc23b 100644
--- a/old_docs/API_docs_v89/methods/messages_getBotCallbackAnswer.md
+++ b/old_docs/API_docs_v89/methods/messages_getBotCallbackAnswer.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
messages_BotCallbackAnswer = messages.getBotCallbackAnswer({game=Bool, peer=InputPeer, msg_id=int, data='bytes', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v89/methods/messages_getChats.md b/old_docs/API_docs_v89/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/old_docs/API_docs_v89/methods/messages_getChats.md
+++ b/old_docs/API_docs_v89/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_getCommonChats.md b/old_docs/API_docs_v89/methods/messages_getCommonChats.md
index 9470a0ee..cff23c3f 100644
--- a/old_docs/API_docs_v89/methods/messages_getCommonChats.md
+++ b/old_docs/API_docs_v89/methods/messages_getCommonChats.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_Chats = messages.getCommonChats({user_id=InputUser, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_getDhConfig.md b/old_docs/API_docs_v89/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v89/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v89/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_getDialogs.md b/old_docs/API_docs_v89/methods/messages_getDialogs.md
index 5d5a75ff..da3efe36 100644
--- a/old_docs/API_docs_v89/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v89/methods/messages_getDialogs.md
@@ -47,13 +47,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({exclude_pinned=Bool, offset_date=int, offset_id=int, offset_peer=InputPeer, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v89/methods/messages_getDocumentByHash.md b/old_docs/API_docs_v89/methods/messages_getDocumentByHash.md
index 73a235d5..06469c52 100644
--- a/old_docs/API_docs_v89/methods/messages_getDocumentByHash.md
+++ b/old_docs/API_docs_v89/methods/messages_getDocumentByHash.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Document = messages.getDocumentByHash({sha256='bytes', size=int, mime_type='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_getFullChat.md b/old_docs/API_docs_v89/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v89/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v89/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_getGameHighScores.md b/old_docs/API_docs_v89/methods/messages_getGameHighScores.md
index 249e1d09..5c484bbb 100644
--- a/old_docs/API_docs_v89/methods/messages_getGameHighScores.md
+++ b/old_docs/API_docs_v89/methods/messages_getGameHighScores.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
messages_HighScores = messages.getGameHighScores({peer=InputPeer, id=int, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v89/methods/messages_getHistory.md b/old_docs/API_docs_v89/methods/messages_getHistory.md
index d623a61e..a0389d7b 100644
--- a/old_docs/API_docs_v89/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v89/methods/messages_getHistory.md
@@ -49,16 +49,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset_id=int, offset_date=int, add_offset=int, limit=int, max_id=int, min_id=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v89/methods/messages_getInlineBotResults.md b/old_docs/API_docs_v89/methods/messages_getInlineBotResults.md
index 1efcb412..17d678b7 100644
--- a/old_docs/API_docs_v89/methods/messages_getInlineBotResults.md
+++ b/old_docs/API_docs_v89/methods/messages_getInlineBotResults.md
@@ -46,13 +46,13 @@ Or, if you're into Lua:
messages_BotResults = messages.getInlineBotResults({bot=InputUser, peer=InputPeer, geo_point=InputGeoPoint, query='string', offset='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
-|BOT_INVALID|This is not a valid bot|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
+|400|BOT_INVALID|This is not a valid bot|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v89/methods/messages_getInlineGameHighScores.md b/old_docs/API_docs_v89/methods/messages_getInlineGameHighScores.md
index e68c6db8..ac33b6b8 100644
--- a/old_docs/API_docs_v89/methods/messages_getInlineGameHighScores.md
+++ b/old_docs/API_docs_v89/methods/messages_getInlineGameHighScores.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_HighScores = messages.getInlineGameHighScores({id=InputBotInlineMessageID, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v89/methods/messages_getMessageEditData.md b/old_docs/API_docs_v89/methods/messages_getMessageEditData.md
index 7f1b7164..b907d78c 100644
--- a/old_docs/API_docs_v89/methods/messages_getMessageEditData.md
+++ b/old_docs/API_docs_v89/methods/messages_getMessageEditData.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_MessageEditData = messages.getMessageEditData({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v89/methods/messages_getMessagesViews.md b/old_docs/API_docs_v89/methods/messages_getMessagesViews.md
index 3d490315..143e568c 100644
--- a/old_docs/API_docs_v89/methods/messages_getMessagesViews.md
+++ b/old_docs/API_docs_v89/methods/messages_getMessagesViews.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
Vector_of_int = messages.getMessagesViews({peer=InputPeer, id={int}, increment=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_getPeerDialogs.md b/old_docs/API_docs_v89/methods/messages_getPeerDialogs.md
index 02eb9b43..17e0d11e 100644
--- a/old_docs/API_docs_v89/methods/messages_getPeerDialogs.md
+++ b/old_docs/API_docs_v89/methods/messages_getPeerDialogs.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPeerDialogs({peers={InputDialogPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_getPeerSettings.md b/old_docs/API_docs_v89/methods/messages_getPeerSettings.md
index 26dafb9b..69032ff5 100644
--- a/old_docs/API_docs_v89/methods/messages_getPeerSettings.md
+++ b/old_docs/API_docs_v89/methods/messages_getPeerSettings.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
PeerSettings = messages.getPeerSettings({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_getPinnedDialogs.md b/old_docs/API_docs_v89/methods/messages_getPinnedDialogs.md
index 828d622e..f106098d 100644
--- a/old_docs/API_docs_v89/methods/messages_getPinnedDialogs.md
+++ b/old_docs/API_docs_v89/methods/messages_getPinnedDialogs.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPinnedDialogs({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FOLDER_ID_INVALID|Invalid folder ID|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FOLDER_ID_INVALID|Invalid folder ID|
diff --git a/old_docs/API_docs_v89/methods/messages_getStickerSet.md b/old_docs/API_docs_v89/methods/messages_getStickerSet.md
index 57bce84d..487316cc 100644
--- a/old_docs/API_docs_v89/methods/messages_getStickerSet.md
+++ b/old_docs/API_docs_v89/methods/messages_getStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_StickerSet = messages.getStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_getUnreadMentions.md b/old_docs/API_docs_v89/methods/messages_getUnreadMentions.md
index 1fa1f269..923229eb 100644
--- a/old_docs/API_docs_v89/methods/messages_getUnreadMentions.md
+++ b/old_docs/API_docs_v89/methods/messages_getUnreadMentions.md
@@ -47,10 +47,10 @@ Or, if you're into Lua:
messages_Messages = messages.getUnreadMentions({peer=InputPeer, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_getWebPage.md b/old_docs/API_docs_v89/methods/messages_getWebPage.md
index ce51ff41..63ef5e93 100644
--- a/old_docs/API_docs_v89/methods/messages_getWebPage.md
+++ b/old_docs/API_docs_v89/methods/messages_getWebPage.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
WebPage = messages.getWebPage({url='string', hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|WC_CONVERT_URL_INVALID|WC convert URL invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|WC_CONVERT_URL_INVALID|WC convert URL invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_hideReportSpam.md b/old_docs/API_docs_v89/methods/messages_hideReportSpam.md
index c4bf7399..57756d2e 100644
--- a/old_docs/API_docs_v89/methods/messages_hideReportSpam.md
+++ b/old_docs/API_docs_v89/methods/messages_hideReportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.hideReportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_importChatInvite.md b/old_docs/API_docs_v89/methods/messages_importChatInvite.md
index 12120867..101b4b19 100644
--- a/old_docs/API_docs_v89/methods/messages_importChatInvite.md
+++ b/old_docs/API_docs_v89/methods/messages_importChatInvite.md
@@ -42,16 +42,16 @@ Or, if you're into Lua:
Updates = messages.importChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v89/methods/messages_installStickerSet.md b/old_docs/API_docs_v89/methods/messages_installStickerSet.md
index 21a57a85..67f2aca0 100644
--- a/old_docs/API_docs_v89/methods/messages_installStickerSet.md
+++ b/old_docs/API_docs_v89/methods/messages_installStickerSet.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_StickerSetInstallResult = messages.installStickerSet({stickerset=InputStickerSet, archived=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_migrateChat.md b/old_docs/API_docs_v89/methods/messages_migrateChat.md
index a72f4c11..ee4010eb 100644
--- a/old_docs/API_docs_v89/methods/messages_migrateChat.md
+++ b/old_docs/API_docs_v89/methods/messages_migrateChat.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
Updates = messages.migrateChat({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v89/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v89/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v89/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v89/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v89/methods/messages_readHistory.md b/old_docs/API_docs_v89/methods/messages_readHistory.md
index 2ad5cd09..a7f0eca7 100644
--- a/old_docs/API_docs_v89/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v89/methods/messages_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.readHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v89/methods/messages_receivedQueue.md b/old_docs/API_docs_v89/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v89/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v89/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v89/methods/messages_reorderPinnedDialogs.md b/old_docs/API_docs_v89/methods/messages_reorderPinnedDialogs.md
index 49aaca93..2452409a 100644
--- a/old_docs/API_docs_v89/methods/messages_reorderPinnedDialogs.md
+++ b/old_docs/API_docs_v89/methods/messages_reorderPinnedDialogs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.reorderPinnedDialogs({force=Bool, order={InputDialogPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_reportEncryptedSpam.md b/old_docs/API_docs_v89/methods/messages_reportEncryptedSpam.md
index 9b1e868b..aeac27ef 100644
--- a/old_docs/API_docs_v89/methods/messages_reportEncryptedSpam.md
+++ b/old_docs/API_docs_v89/methods/messages_reportEncryptedSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportEncryptedSpam({peer=InputEncryptedChat, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_reportSpam.md b/old_docs/API_docs_v89/methods/messages_reportSpam.md
index e92fba13..dc256e55 100644
--- a/old_docs/API_docs_v89/methods/messages_reportSpam.md
+++ b/old_docs/API_docs_v89/methods/messages_reportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_requestEncryption.md b/old_docs/API_docs_v89/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v89/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v89/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_saveDraft.md b/old_docs/API_docs_v89/methods/messages_saveDraft.md
index 791ce234..ea6d407e 100644
--- a/old_docs/API_docs_v89/methods/messages_saveDraft.md
+++ b/old_docs/API_docs_v89/methods/messages_saveDraft.md
@@ -89,10 +89,10 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_saveGif.md b/old_docs/API_docs_v89/methods/messages_saveGif.md
index f504ff9e..010e17ec 100644
--- a/old_docs/API_docs_v89/methods/messages_saveGif.md
+++ b/old_docs/API_docs_v89/methods/messages_saveGif.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.saveGif({id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|GIF_ID_INVALID|The provided GIF ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|GIF_ID_INVALID|The provided GIF ID is invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_saveRecentSticker.md b/old_docs/API_docs_v89/methods/messages_saveRecentSticker.md
index 98c74efd..072b6fe9 100644
--- a/old_docs/API_docs_v89/methods/messages_saveRecentSticker.md
+++ b/old_docs/API_docs_v89/methods/messages_saveRecentSticker.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.saveRecentSticker({attached=Bool, id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_search.md b/old_docs/API_docs_v89/methods/messages_search.md
index 83cb34c6..07529b40 100644
--- a/old_docs/API_docs_v89/methods/messages_search.md
+++ b/old_docs/API_docs_v89/methods/messages_search.md
@@ -53,16 +53,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({peer=InputPeer, q='string', from_id=InputUser, filter=MessagesFilter, min_date=int, max_date=int, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_searchGifs.md b/old_docs/API_docs_v89/methods/messages_searchGifs.md
index 7be4173b..1602d35e 100644
--- a/old_docs/API_docs_v89/methods/messages_searchGifs.md
+++ b/old_docs/API_docs_v89/methods/messages_searchGifs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_FoundGifs = messages.searchGifs({q='string', offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v89/methods/messages_searchGlobal.md b/old_docs/API_docs_v89/methods/messages_searchGlobal.md
index fb38398b..c8da163c 100644
--- a/old_docs/API_docs_v89/methods/messages_searchGlobal.md
+++ b/old_docs/API_docs_v89/methods/messages_searchGlobal.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
messages_Messages = messages.searchGlobal({q='string', offset_date=int, offset_peer=InputPeer, offset_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v89/methods/messages_sendEncrypted.md b/old_docs/API_docs_v89/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v89/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v89/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v89/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v89/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v89/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v89/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v89/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v89/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v89/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v89/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v89/methods/messages_sendInlineBotResult.md b/old_docs/API_docs_v89/methods/messages_sendInlineBotResult.md
index 9ffa02ae..a2b57f4d 100644
--- a/old_docs/API_docs_v89/methods/messages_sendInlineBotResult.md
+++ b/old_docs/API_docs_v89/methods/messages_sendInlineBotResult.md
@@ -48,15 +48,15 @@ Or, if you're into Lua:
Updates = messages.sendInlineBotResult({silent=Bool, background=Bool, clear_draft=Bool, peer=InputPeer, reply_to_msg_id=int, query_id=long, id='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INLINE_RESULT_EXPIRED|The inline query expired|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|QUERY_ID_EMPTY|The query ID is empty|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INLINE_RESULT_EXPIRED|The inline query expired|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|QUERY_ID_EMPTY|The query ID is empty|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v89/methods/messages_sendMedia.md b/old_docs/API_docs_v89/methods/messages_sendMedia.md
index 44c604c6..a2244583 100644
--- a/old_docs/API_docs_v89/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v89/methods/messages_sendMedia.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v89/methods/messages_sendMessage.md b/old_docs/API_docs_v89/methods/messages_sendMessage.md
index 5641ebc3..e0ab305d 100644
--- a/old_docs/API_docs_v89/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v89/methods/messages_sendMessage.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v89/methods/messages_sendMultiMedia.md b/old_docs/API_docs_v89/methods/messages_sendMultiMedia.md
index 9ebdcb88..5684a6d2 100644
--- a/old_docs/API_docs_v89/methods/messages_sendMultiMedia.md
+++ b/old_docs/API_docs_v89/methods/messages_sendMultiMedia.md
@@ -47,11 +47,11 @@ Or, if you're into Lua:
Updates = messages.sendMultiMedia({silent=Bool, background=Bool, clear_draft=Bool, peer=InputPeer, reply_to_msg_id=int, multi_media={InputSingleMedia}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_sendScreenshotNotification.md b/old_docs/API_docs_v89/methods/messages_sendScreenshotNotification.md
index 3f5bb36d..4e4e40f5 100644
--- a/old_docs/API_docs_v89/methods/messages_sendScreenshotNotification.md
+++ b/old_docs/API_docs_v89/methods/messages_sendScreenshotNotification.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = messages.sendScreenshotNotification({peer=InputPeer, reply_to_msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_setBotCallbackAnswer.md b/old_docs/API_docs_v89/methods/messages_setBotCallbackAnswer.md
index ed058b4f..630ca61c 100644
--- a/old_docs/API_docs_v89/methods/messages_setBotCallbackAnswer.md
+++ b/old_docs/API_docs_v89/methods/messages_setBotCallbackAnswer.md
@@ -52,11 +52,11 @@ Bool = messages.setBotCallbackAnswer({alert=Bool, query_id=long, message='string
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|URL_INVALID|Invalid URL provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|URL_INVALID|Invalid URL provided|
diff --git a/old_docs/API_docs_v89/methods/messages_setBotPrecheckoutResults.md b/old_docs/API_docs_v89/methods/messages_setBotPrecheckoutResults.md
index cc615123..d6e0e61b 100644
--- a/old_docs/API_docs_v89/methods/messages_setBotPrecheckoutResults.md
+++ b/old_docs/API_docs_v89/methods/messages_setBotPrecheckoutResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotPrecheckoutResults({success=Bool, query_id=long, error='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ERROR_TEXT_EMPTY|The provided error message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ERROR_TEXT_EMPTY|The provided error message is empty|
diff --git a/old_docs/API_docs_v89/methods/messages_setBotShippingResults.md b/old_docs/API_docs_v89/methods/messages_setBotShippingResults.md
index f3a86f4f..adc4f64f 100644
--- a/old_docs/API_docs_v89/methods/messages_setBotShippingResults.md
+++ b/old_docs/API_docs_v89/methods/messages_setBotShippingResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotShippingResults({query_id=long, error='string', shipping_options={ShippingOption}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v89/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v89/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v89/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_setGameScore.md b/old_docs/API_docs_v89/methods/messages_setGameScore.md
index 548ee889..429b04c6 100644
--- a/old_docs/API_docs_v89/methods/messages_setGameScore.md
+++ b/old_docs/API_docs_v89/methods/messages_setGameScore.md
@@ -47,12 +47,12 @@ Or, if you're into Lua:
Updates = messages.setGameScore({edit_message=Bool, force=Bool, peer=InputPeer, id=int, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v89/methods/messages_setInlineBotResults.md b/old_docs/API_docs_v89/methods/messages_setInlineBotResults.md
index ab388e39..df4c30d4 100644
--- a/old_docs/API_docs_v89/methods/messages_setInlineBotResults.md
+++ b/old_docs/API_docs_v89/methods/messages_setInlineBotResults.md
@@ -48,23 +48,23 @@ Or, if you're into Lua:
Bool = messages.setInlineBotResults({gallery=Bool, private=Bool, query_id=long, results={InputBotInlineResult}, cache_time=int, next_offset='string', switch_pm=InlineBotSwitchPM, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ARTICLE_TITLE_EMPTY|The title of the article is empty|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|PHOTO_INVALID|Photo invalid|
-|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
-|QUERY_ID_INVALID|The query ID is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|RESULT_TYPE_INVALID|Result type invalid|
-|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
-|START_PARAM_INVALID|Start parameter invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ARTICLE_TITLE_EMPTY|The title of the article is empty|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|PHOTO_INVALID|Photo invalid|
+|400|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|RESULT_TYPE_INVALID|Result type invalid|
+|400|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
+|400|START_PARAM_INVALID|Start parameter invalid|
+|403|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v89/methods/messages_setInlineGameScore.md b/old_docs/API_docs_v89/methods/messages_setInlineGameScore.md
index 5eeb1540..62b163d5 100644
--- a/old_docs/API_docs_v89/methods/messages_setInlineGameScore.md
+++ b/old_docs/API_docs_v89/methods/messages_setInlineGameScore.md
@@ -46,11 +46,11 @@ Or, if you're into Lua:
Bool = messages.setInlineGameScore({edit_message=Bool, force=Bool, id=InputBotInlineMessageID, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v89/methods/messages_setTyping.md b/old_docs/API_docs_v89/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v89/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v89/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v89/methods/messages_startBot.md b/old_docs/API_docs_v89/methods/messages_startBot.md
index aa2b2d00..4bf12aa6 100644
--- a/old_docs/API_docs_v89/methods/messages_startBot.md
+++ b/old_docs/API_docs_v89/methods/messages_startBot.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = messages.startBot({bot=InputUser, peer=InputPeer, start_param='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INVALID|This is not a valid bot|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|START_PARAM_EMPTY|The start parameter is empty|
-|START_PARAM_INVALID|Start parameter invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INVALID|This is not a valid bot|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|START_PARAM_EMPTY|The start parameter is empty|
+|400|START_PARAM_INVALID|Start parameter invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_toggleChatAdmins.md b/old_docs/API_docs_v89/methods/messages_toggleChatAdmins.md
index 7851806d..8ea6e65e 100644
--- a/old_docs/API_docs_v89/methods/messages_toggleChatAdmins.md
+++ b/old_docs/API_docs_v89/methods/messages_toggleChatAdmins.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.toggleChatAdmins({chat_id=InputPeer, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v89/methods/messages_toggleDialogPin.md b/old_docs/API_docs_v89/methods/messages_toggleDialogPin.md
index 22c6d15d..ff46ef21 100644
--- a/old_docs/API_docs_v89/methods/messages_toggleDialogPin.md
+++ b/old_docs/API_docs_v89/methods/messages_toggleDialogPin.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.toggleDialogPin({pinned=Bool, peer=InputDialogPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_uninstallStickerSet.md b/old_docs/API_docs_v89/methods/messages_uninstallStickerSet.md
index 59abc510..6b7a2006 100644
--- a/old_docs/API_docs_v89/methods/messages_uninstallStickerSet.md
+++ b/old_docs/API_docs_v89/methods/messages_uninstallStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.uninstallStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v89/methods/messages_uploadMedia.md b/old_docs/API_docs_v89/methods/messages_uploadMedia.md
index afc806fe..09fc074c 100644
--- a/old_docs/API_docs_v89/methods/messages_uploadMedia.md
+++ b/old_docs/API_docs_v89/methods/messages_uploadMedia.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
MessageMedia = messages.uploadMedia({peer=InputPeer, media=InputMedia, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v89/methods/payments_getPaymentForm.md b/old_docs/API_docs_v89/methods/payments_getPaymentForm.md
index e8e04f37..4c28121f 100644
--- a/old_docs/API_docs_v89/methods/payments_getPaymentForm.md
+++ b/old_docs/API_docs_v89/methods/payments_getPaymentForm.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentForm = payments.getPaymentForm({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v89/methods/payments_getPaymentReceipt.md b/old_docs/API_docs_v89/methods/payments_getPaymentReceipt.md
index acb1c209..0e2f76a8 100644
--- a/old_docs/API_docs_v89/methods/payments_getPaymentReceipt.md
+++ b/old_docs/API_docs_v89/methods/payments_getPaymentReceipt.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentReceipt = payments.getPaymentReceipt({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v89/methods/payments_sendPaymentForm.md b/old_docs/API_docs_v89/methods/payments_sendPaymentForm.md
index b8fa905d..1910ede8 100644
--- a/old_docs/API_docs_v89/methods/payments_sendPaymentForm.md
+++ b/old_docs/API_docs_v89/methods/payments_sendPaymentForm.md
@@ -45,10 +45,10 @@ Or, if you're into Lua:
payments_PaymentResult = payments.sendPaymentForm({msg_id=int, requested_info_id='string', shipping_option_id='string', credentials=InputPaymentCredentials, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v89/methods/payments_validateRequestedInfo.md b/old_docs/API_docs_v89/methods/payments_validateRequestedInfo.md
index 3b9da7e6..f18e1660 100644
--- a/old_docs/API_docs_v89/methods/payments_validateRequestedInfo.md
+++ b/old_docs/API_docs_v89/methods/payments_validateRequestedInfo.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
payments_ValidatedRequestedInfo = payments.validateRequestedInfo({save=Bool, msg_id=int, info=PaymentRequestedInfo, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v89/methods/phone_acceptCall.md b/old_docs/API_docs_v89/methods/phone_acceptCall.md
index b75ac65b..f5c58f01 100644
--- a/old_docs/API_docs_v89/methods/phone_acceptCall.md
+++ b/old_docs/API_docs_v89/methods/phone_acceptCall.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->acceptCall(['peer' => InputPhoneCall, 'g_b' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.acceptCall({peer=InputPhoneCall, g_b='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
diff --git a/old_docs/API_docs_v89/methods/phone_confirmCall.md b/old_docs/API_docs_v89/methods/phone_confirmCall.md
index 1a75563d..468307cc 100644
--- a/old_docs/API_docs_v89/methods/phone_confirmCall.md
+++ b/old_docs/API_docs_v89/methods/phone_confirmCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->confirmCall(['peer' => InputPhoneCall, 'g_a' => 'bytes', 'key_fingerprint' => long, 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.confirmCall({peer=InputPhoneCall, g_a='bytes', key_fingerprint=long, protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v89/methods/phone_discardCall.md b/old_docs/API_docs_v89/methods/phone_discardCall.md
index e50456eb..ffaa18ea 100644
--- a/old_docs/API_docs_v89/methods/phone_discardCall.md
+++ b/old_docs/API_docs_v89/methods/phone_discardCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|duration|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|reason|[PhoneCallDiscardReason](../types/PhoneCallDiscardReason.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|connection\_id|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [Updates](../types/Updates.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Updates = $MadelineProto->phone->discardCall(['peer' => InputPhoneCall, 'duration' => int, 'reason' => PhoneCallDiscardReason, 'connection_id' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Updates = phone.discardCall({peer=InputPhoneCall, duration=int, reason=PhoneCallDiscardReason, connection_id=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v89/methods/phone_receivedCall.md b/old_docs/API_docs_v89/methods/phone_receivedCall.md
index c43bc8ac..6091424b 100644
--- a/old_docs/API_docs_v89/methods/phone_receivedCall.md
+++ b/old_docs/API_docs_v89/methods/phone_receivedCall.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Bool = phone.receivedCall({peer=InputPhoneCall, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_ALREADY_DECLINED|The call was already declined|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v89/methods/phone_requestCall.md b/old_docs/API_docs_v89/methods/phone_requestCall.md
index 9b8df564..c8e828f2 100644
--- a/old_docs/API_docs_v89/methods/phone_requestCall.md
+++ b/old_docs/API_docs_v89/methods/phone_requestCall.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Optional|
+|g\_a\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->requestCall(['user_id' => InputUser, 'g_a_hash' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.requestCall({user_id=InputUser, g_a_hash='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
+|400|PARTICIPANT_VERSION_OUTDATED|The other participant does not use an up to date telegram client with support for calls|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|403|USER_IS_BLOCKED|You were blocked by this user|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v89/methods/phone_saveCallDebug.md b/old_docs/API_docs_v89/methods/phone_saveCallDebug.md
index 8acbc353..1e793c05 100644
--- a/old_docs/API_docs_v89/methods/phone_saveCallDebug.md
+++ b/old_docs/API_docs_v89/methods/phone_saveCallDebug.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = phone.saveCallDebug({peer=InputPhoneCall, debug=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
-|DATA_JSON_INVALID|The provided JSON data is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|DATA_JSON_INVALID|The provided JSON data is invalid|
diff --git a/old_docs/API_docs_v89/methods/phone_setCallRating.md b/old_docs/API_docs_v89/methods/phone_setCallRating.md
index 9bc6bdd0..9daed209 100644
--- a/old_docs/API_docs_v89/methods/phone_setCallRating.md
+++ b/old_docs/API_docs_v89/methods/phone_setCallRating.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Updates = phone.setCallRating({peer=InputPhoneCall, rating=int, comment='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v89/methods/photos_getUserPhotos.md b/old_docs/API_docs_v89/methods/photos_getUserPhotos.md
index 57f5772b..a01f3180 100644
--- a/old_docs/API_docs_v89/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v89/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v89/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v89/methods/photos_updateProfilePhoto.md
index cca2fe30..f7c91ec6 100644
--- a/old_docs/API_docs_v89/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v89/methods/photos_updateProfilePhoto.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v89/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v89/methods/photos_uploadProfilePhoto.md
index 457bade8..badde2de 100644
--- a/old_docs/API_docs_v89/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v89/methods/photos_uploadProfilePhoto.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v89/methods/stickers_addStickerToSet.md b/old_docs/API_docs_v89/methods/stickers_addStickerToSet.md
index 78e8437c..b1fa2aad 100644
--- a/old_docs/API_docs_v89/methods/stickers_addStickerToSet.md
+++ b/old_docs/API_docs_v89/methods/stickers_addStickerToSet.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.addStickerToSet({stickerset=InputStickerSet, sticker=InputStickerSetItem, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v89/methods/stickers_changeStickerPosition.md b/old_docs/API_docs_v89/methods/stickers_changeStickerPosition.md
index cddc1cbb..98dde67e 100644
--- a/old_docs/API_docs_v89/methods/stickers_changeStickerPosition.md
+++ b/old_docs/API_docs_v89/methods/stickers_changeStickerPosition.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.changeStickerPosition({sticker=InputDocument, position=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/old_docs/API_docs_v89/methods/stickers_createStickerSet.md b/old_docs/API_docs_v89/methods/stickers_createStickerSet.md
index 41e4ad11..741e0ad6 100644
--- a/old_docs/API_docs_v89/methods/stickers_createStickerSet.md
+++ b/old_docs/API_docs_v89/methods/stickers_createStickerSet.md
@@ -46,18 +46,18 @@ Or, if you're into Lua:
messages_StickerSet = stickers.createStickerSet({masks=Bool, user_id=InputUser, title='string', short_name='string', stickers={InputStickerSetItem}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|PACK_SHORT_NAME_INVALID|Short pack name invalid|
-|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|STICKER_EMOJI_INVALID|Sticker emoji invalid|
-|STICKER_FILE_INVALID|Sticker file invalid|
-|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
-|STICKERS_EMPTY|No sticker provided|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|PACK_SHORT_NAME_INVALID|Short pack name invalid|
+|400|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|STICKER_EMOJI_INVALID|Sticker emoji invalid|
+|400|STICKER_FILE_INVALID|Sticker file invalid|
+|400|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
+|400|STICKERS_EMPTY|No sticker provided|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v89/methods/stickers_removeStickerFromSet.md b/old_docs/API_docs_v89/methods/stickers_removeStickerFromSet.md
index ea4621f2..d1fc4339 100644
--- a/old_docs/API_docs_v89/methods/stickers_removeStickerFromSet.md
+++ b/old_docs/API_docs_v89/methods/stickers_removeStickerFromSet.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.removeStickerFromSet({sticker=InputDocument, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/old_docs/API_docs_v89/methods/updates_getChannelDifference.md b/old_docs/API_docs_v89/methods/updates_getChannelDifference.md
index 6fa79529..9735c14a 100644
--- a/old_docs/API_docs_v89/methods/updates_getChannelDifference.md
+++ b/old_docs/API_docs_v89/methods/updates_getChannelDifference.md
@@ -7,8 +7,56 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|force|[Bool](../types/Bool.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|filter|[ChannelMessagesFilter](../types/ChannelMessagesFilter.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_ChannelDifference](../types/updates_ChannelDifference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_ChannelDifference = $MadelineProto->updates->getChannelDifference(['force' => Bool, 'channel' => InputChannel, 'filter' => ChannelMessagesFilter, 'pts' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_ChannelDifference = updates.getChannelDifference({force=Bool, channel=InputChannel, filter=ChannelMessagesFilter, pts=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|400|RANGES_INVALID|Invalid range provided|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v89/methods/updates_getDifference.md b/old_docs/API_docs_v89/methods/updates_getDifference.md
index 33e7d7f2..bcfac4e2 100644
--- a/old_docs/API_docs_v89/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v89/methods/updates_getDifference.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|pts\_total\_limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'pts_total_limit' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, pts_total_limit=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v89/methods/updates_getState.md b/old_docs/API_docs_v89/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v89/methods/updates_getState.md
+++ b/old_docs/API_docs_v89/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v89/methods/upload_getCdnFile.md b/old_docs/API_docs_v89/methods/upload_getCdnFile.md
index 5e5b3f43..be9ad311 100644
--- a/old_docs/API_docs_v89/methods/upload_getCdnFile.md
+++ b/old_docs/API_docs_v89/methods/upload_getCdnFile.md
@@ -7,8 +7,40 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_CdnFile](../types/upload_CdnFile.md)
+
+### Can bots use this method: **NO**
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_CdnFile = $MadelineProto->upload->getCdnFile(['file_token' => 'bytes', 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_CdnFile = upload.getCdnFile({file_token='bytes', offset=int, limit=int, })
+```
+
diff --git a/old_docs/API_docs_v89/methods/upload_getCdnFileHashes.md b/old_docs/API_docs_v89/methods/upload_getCdnFileHashes.md
index ea6a8e75..d957578e 100644
--- a/old_docs/API_docs_v89/methods/upload_getCdnFileHashes.md
+++ b/old_docs/API_docs_v89/methods/upload_getCdnFileHashes.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->getCdnFileHashes(['file_token' => 'bytes', 'offset' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.getCdnFileHashes({file_token='bytes', offset=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/old_docs/API_docs_v89/methods/upload_getFile.md b/old_docs/API_docs_v89/methods/upload_getFile.md
index c72e6090..d8b433d6 100644
--- a/old_docs/API_docs_v89/methods/upload_getFile.md
+++ b/old_docs/API_docs_v89/methods/upload_getFile.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v89/methods/upload_getFileHashes.md b/old_docs/API_docs_v89/methods/upload_getFileHashes.md
index debeb60d..e03dd5c5 100644
--- a/old_docs/API_docs_v89/methods/upload_getFileHashes.md
+++ b/old_docs/API_docs_v89/methods/upload_getFileHashes.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+Get file hashes
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | The file | Yes|
+|offset|[int](../types/int.md) | Offset | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->getFileHashes(['location' => InputFileLocation, 'offset' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.getFileHashes({location=InputFileLocation, offset=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LOCATION_INVALID|The provided location is invalid|
diff --git a/old_docs/API_docs_v89/methods/upload_getWebFile.md b/old_docs/API_docs_v89/methods/upload_getWebFile.md
index 21179a66..7b63f96c 100644
--- a/old_docs/API_docs_v89/methods/upload_getWebFile.md
+++ b/old_docs/API_docs_v89/methods/upload_getWebFile.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
upload_WebFile = upload.getWebFile({location=InputWebFileLocation, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LOCATION_INVALID|The provided location is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LOCATION_INVALID|The provided location is invalid|
diff --git a/old_docs/API_docs_v89/methods/upload_reuploadCdnFile.md b/old_docs/API_docs_v89/methods/upload_reuploadCdnFile.md
index cc20d5e3..f531557c 100644
--- a/old_docs/API_docs_v89/methods/upload_reuploadCdnFile.md
+++ b/old_docs/API_docs_v89/methods/upload_reuploadCdnFile.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|request\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->reuploadCdnFile(['file_token' => 'bytes', 'request_token' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.reuploadCdnFile({file_token='bytes', request_token='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/old_docs/API_docs_v89/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v89/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v89/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v89/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v89/methods/upload_saveFilePart.md b/old_docs/API_docs_v89/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v89/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v89/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v89/methods/users_getFullUser.md b/old_docs/API_docs_v89/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v89/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v89/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v89/methods/users_getUsers.md b/old_docs/API_docs_v89/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v89/methods/users_getUsers.md
+++ b/old_docs/API_docs_v89/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v89/methods/users_setSecureValueErrors.md b/old_docs/API_docs_v89/methods/users_setSecureValueErrors.md
index 40e398ab..661137fb 100644
--- a/old_docs/API_docs_v89/methods/users_setSecureValueErrors.md
+++ b/old_docs/API_docs_v89/methods/users_setSecureValueErrors.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = users.setSecureValueErrors({id=InputUser, errors={SecureValueError}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v91/methods/README.md b/old_docs/API_docs_v91/methods/README.md
index b9dae227..a161eab6 100644
--- a/old_docs/API_docs_v91/methods/README.md
+++ b/old_docs/API_docs_v91/methods/README.md
@@ -30,507 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Accept telegram passport authorization: account.acceptAuthorization
-
-* Accept telegram's TOS: help.acceptTermsOfService
-
-* Add a sticker set: messages.installStickerSet
-
-* Add a sticker to favorites: messages.faveSticker
-
-* Add a sticker to recent stickers: messages.saveRecentSticker
-
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add phone number as contact: contacts.importContacts
-
-* Add sticker to stickerset: stickers.addStickerToSet
-
-* Add users to channel/supergroup: channels.inviteToChannel
-
-* Allow or disallow any user to invite users to this channel/supergroup: channels.toggleInvites
-
-* Block a user: contacts.block
-
-* Bots only: get telegram passport authorization form: account.getAuthorizationForm
-
-* Bots only: send payment form: payments.sendPaymentForm
-
-* Bots only: set precheckout results: messages.setBotPrecheckoutResults
-
-* Bots only: set shipping results: messages.setBotShippingResults
-
-* Bots only: set the callback answer (after a button was clicked): messages.setBotCallbackAnswer
-
-* Bots only: set the results of an inline query: messages.setInlineBotResults
-
-* Call inline bot: messages.getInlineBotResults
-
-* Cancel password recovery email: account.cancelPasswordEmail
-
-* Change notification settings: account.updateNotifySettings
-
-* Change sticker position in photo: stickers.changeStickerPosition
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if about to edit a message or a media caption: messages.getMessageEditData
-
-* Check if an invitation link is valid: messages.checkChatInvite
-
-* Check if this username is available: account.checkUsername
-
-* Check if this username is free and can be assigned to a channel/supergroup: channels.checkUsername
-
-* Clear all drafts: messages.clearAllDrafts
-
-* Clear all recent stickers: messages.clearRecentStickers
-
-* Clear saved payments info: payments.clearSavedInfo
-
-* Confirm password recovery using email: account.confirmPasswordEmail
-
-* Confirm this phone number is associated to this account, obtain phone_code_hash from sendConfirmPhoneCode: account.confirmPhone
-
-* Contact signup notification setting value: account.getContactSignUpNotification
-
-* Convert chat to supergroup: messages.migrateChat
-
-* Create a chat (not supergroup): messages.createChat
-
-* Create channel/supergroup: channels.createChannel
-
-* Create stickerset: stickers.createStickerSet
-
-* Delete a certain session: account.resetAuthorization
-
-* Delete a certain telegram web login authorization: account.resetWebAuthorization
-
-* Delete a channel/supergroup: channels.deleteChannel
-
-* Delete a contact: contacts.deleteContact
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete all messages of a user in a channel/supergroup: channels.deleteUserHistory
-
-* Delete all temporary authorization keys except the ones provided: auth.dropTempAuthKeys
-
-* Delete channel/supergroup messages: channels.deleteMessages
-
-* Delete chat history: messages.deleteHistory
-
-* Delete contacts by phones: contacts.deleteByPhones
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete secure telegram passport value: account.deleteSecureValue
-
-* Delete the history of a supergroup/channel: channels.deleteHistory
-
-* Delete this account: account.deleteAccount
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Download a file through telegram: upload.getWebFile
-
-* Edit a message: messages.editMessage
-
-* Edit a sent inline message: messages.editInlineBotMessage
-
-* Edit admin permissions of a user in a channel/supergroup: channels.editAdmin
-
-* Edit admin permissions: messages.editChatAdmin
-
-* Edit the about text of a channel/supergroup: channels.editAbout
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the photo of a supergroup/channel: channels.editPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Edit the title of a supergroup/channel: channels.editTitle
-
-* Edit user info: help.editUserInfo
-
-* Enable all users are admins in normal groups (not supergroups): messages.toggleChatAdmins
-
-* Enable or disable hidden history for new channel/supergroup users: channels.togglePreHistoryHidden
-
-* Export chat invite : messages.exportChatInvite
-
-* Export the invite link of a channel: channels.exportInvite
-
-* Find a sticker set: messages.searchStickerSets
-
-* Finish account exporting session: account.finishTakeoutSession
-
-* Forward messages: messages.forwardMessages
-
-* Get CDN configuration: help.getCdnConfig
-
-* Get a stickerset: messages.getStickerSet
-
-* Get account TTL: account.getAccountTTL
-
-* Get admin log of a channel/supergroup: channels.getAdminLog
-
-* Get all archived stickers: messages.getArchivedStickers
-
-* Get all channels you left: channels.getLeftChannels
-
-* Get all chats (not supergroups or channels): messages.getAllChats
-
-* Get all contacts: contacts.getContacts
-
-* Get all logged-in authorizations: account.getAuthorizations
-
-* Get all message drafts: messages.getAllDrafts
-
-* Get all secure telegram passport values: account.getAllSecureValues
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get all supergroups/channels where you're admin: channels.getAdminedPublicChannels
-
-* Get and increase message views: messages.getMessagesViews
-
-* Get app config: help.getAppConfig
-
-* Get available languages: langpack.getLanguages
-
-* Get blocked users: contacts.getBlocked
-
-* Get call configuration: phone.getCallConfig
-
-* Get channel/supergroup messages: channels.getMessages
-
-* Get channel/supergroup participants (you should use `$MadelineProto->get_pwr_chat($id)` instead): channels.getParticipants
-
-* Get chats in common with a user: messages.getCommonChats
-
-* Get contacts by IDs: contacts.getContactIDs
-
-* Get deep link info: help.getDeepLinkInfo
-
-* Get dialog info of peers: messages.getPeerDialogs
-
-* Get dialogs marked as unread manually: messages.getDialogUnreadMarks
-
-* Get document by SHA256 hash: messages.getDocumentByHash
-
-* Get favorite stickers: messages.getFavedStickers
-
-* Get featured stickers: messages.getFeaturedStickers
-
-* Get high scores of a game sent in an inline message: messages.getInlineGameHighScores
-
-* Get high scores of a game: messages.getGameHighScores
-
-* Get info about a certain channel/supergroup participant: channels.getParticipant
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about multiple channels/supergroups: channels.getChannels
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get information about the current proxy: help.getProxyData
-
-* Get invitation text: help.getInviteText
-
-* Get language pack strings: langpack.getStrings
-
-* Get language pack updates: langpack.getDifference
-
-* Get language pack: langpack.getLangPack
-
-* Get language: langpack.getLanguage
-
-* Get masks: messages.getMaskStickers
-
-* Get message ranges to fetch: messages.getSplitRanges
-
-* Get messages: messages.getMessages
-
-* Get most used chats: contacts.getTopPeers
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification exceptions: account.getNotifyExceptions
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get online users: messages.getOnlines
-
-* Get passport config: help.getPassportConfig
-
-* Get payment form: payments.getPaymentForm
-
-* Get payment receipt: payments.getPaymentReceipt
-
-* Get pinned dialogs: messages.getPinnedDialogs
-
-* Get poll results: messages.getPollResults
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get recent locations: messages.getRecentLocations
-
-* Get recent stickers: messages.getRecentStickers
-
-* Get recent t.me URLs: help.getRecentMeUrls
-
-* Get saved contacts: contacts.getSaved
-
-* Get saved gifs: messages.getSavedGifs
-
-* Get saved payments info: payments.getSavedInfo
-
-* Get secure value for telegram passport: account.getSecureValue
-
-* Get server configuration: help.getConfig
-
-* Get stats URL: messages.getStatsURL
-
-* Get stickers attachable to images: messages.getAttachedStickers
-
-* Get stickers: messages.getStickers
-
-* Get support name: help.getSupportName
-
-* Get telegram web login authorizations: account.getWebAuthorizations
-
-* Get temporary password for buying products through bots: account.getTmpPassword
-
-* Get the callback answer of a bot (after clicking a button): messages.getBotCallbackAnswer
-
-* Get the changelog of this app: help.getAppChangelog
-
-* Get the current password: account.getPassword
-
-* Get the link of a message in a channel: channels.exportMessageLink
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Get the settings of apeer: messages.getPeerSettings
-
-* Get unread mentions: messages.getUnreadMentions
-
-* Get updated TOS: help.getTermsOfServiceUpdate
-
-* Get user info: help.getUserInfo
-
-* Get webpage preview: messages.getWebPage
-
-* Get webpage preview: messages.getWebPagePreview
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Global message search: messages.searchGlobal
-
-* Hide report spam popup: messages.hideReportSpam
-
-* Import chat invite: messages.importChatInvite
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Invalidate sent phone code: auth.cancelCode
-
-* Invoke method from takeout session: invokeWithTakeout
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invoke with messages range: invokeWithMessagesRange
-
-* Invoke with method without returning updates in the socket: invokeWithoutUpdates
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Join a channel/supergroup: channels.joinChannel
-
-* Kick or ban a user from a channel/supergroup: channels.editBanned
-
-* Leave a channel/supergroup: channels.leaveChannel
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark channel/supergroup history as read: channels.readHistory
-
-* Mark channel/supergroup messages as read: channels.readMessageContents
-
-* Mark dialog as unread : messages.markDialogUnread
-
-* Mark mentions as read: messages.readMentions
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Mark new featured stickers as read: messages.readFeaturedStickers
-
-* Notify server that you received a call (server will refuse all incoming calls until the current call is over): phone.receivedCall
-
-* Pin or unpin dialog: messages.toggleDialogPin
-
-* Register device for push notifications: account.registerDevice
-
-* Remove a sticker set: messages.uninstallStickerSet
-
-* Remove sticker from stickerset: stickers.removeStickerFromSet
-
-* Reorder pinned dialogs: messages.reorderPinnedDialogs
-
-* Reorder sticker sets: messages.reorderStickerSets
-
-* Report a message in a supergroup/channel for spam: channels.reportSpam
-
-* Report a message: messages.report
-
-* Report a peer for spam: messages.reportSpam
-
-* Report for spam a secret chat: messages.reportEncryptedSpam
-
-* Report for spam: account.reportPeer
-
-* Resend password recovery email: account.resendPasswordEmail
-
-* Resend the SMS verification code: auth.resendCode
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Reset all telegram web login authorizations: account.resetWebAuthorizations
-
-* Reset saved contacts: contacts.resetSaved
-
-* Reset top peer rating for a certain category/peer: contacts.resetTopPeerRating
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Save a GIF: messages.saveGif
-
-* Save a message draft: messages.saveDraft
-
-* Save call debugging info: phone.saveCallDebug
-
-* Save telegram passport secure value: account.saveSecureValue
-
-* Search contacts: contacts.search
-
-* Search gifs: messages.searchGifs
-
-* Search peers or messages: messages.search
-
-* Send a custom request to the bot API: bots.sendCustomRequest
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send an album: messages.sendMultiMedia
-
-* Send an email to recover the 2FA password: auth.requestPasswordRecovery
-
-* Send confirmation phone code: account.sendConfirmPhoneCode
-
-* Send email verification code: account.sendVerifyEmailCode
-
-* Send inline bot result obtained with messages.getInlineBotResults to the chat: messages.sendInlineBotResult
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send phone verification code: account.sendVerifyPhoneCode
-
-* Send screenshot notification: messages.sendScreenshotNotification
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Send vote: messages.sendVote
-
-* Send webhook request via bot API: bots.answerWebhookJSONQuery
-
-* Set account TTL: account.setAccountTTL
-
-* Set contact sign up notification: account.setContactSignUpNotification
-
-* Set phone call rating: phone.setCallRating
-
-* Set privacy settings: account.setPrivacy
-
-* Set secure value error for telegram passport: users.setSecureValueErrors
-
-* Set the game score of an inline message: messages.setInlineGameScore
-
-* Set the game score: messages.setGameScore
-
-* Set the supergroup/channel stickerpack: channels.setStickers
-
-* Set the update status of webhook: help.setBotUpdatesStatus
-
-* Start a bot: messages.startBot
-
-* Start account exporting session: account.initTakeoutSession
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Toggle channel signatures: channels.toggleSignatures
-
-* Toggle top peers: contacts.toggleTopPeers
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update pinned message: messages.updatePinnedMessage
-
-* Update profile info: account.updateProfile
-
-* Update the username of a supergroup/channel: channels.updateUsername
-
-* Update this user's username: account.updateUsername
-
-* Upload a file without sending it to anyone: messages.uploadMedia
-
-* Upload a secret chat file without sending it to anyone: messages.uploadEncryptedFile
-
-* Upload profile photo: photos.uploadProfilePhoto
-
-* Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
-
-* Validate requested payment info: payments.validateRequestedInfo
-
-* Verify email address: account.verifyEmail
-
-* Verify phone number: account.verifyPhone
-
diff --git a/old_docs/API_docs_v91/methods/account_changePhone.md b/old_docs/API_docs_v91/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/old_docs/API_docs_v91/methods/account_changePhone.md
+++ b/old_docs/API_docs_v91/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v91/methods/account_checkUsername.md b/old_docs/API_docs_v91/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v91/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v91/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v91/methods/account_confirmPhone.md b/old_docs/API_docs_v91/methods/account_confirmPhone.md
index b730c2dc..c114cd20 100644
--- a/old_docs/API_docs_v91/methods/account_confirmPhone.md
+++ b/old_docs/API_docs_v91/methods/account_confirmPhone.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = account.confirmPhone({phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_HASH_INVALID|Code hash invalid|
-|PHONE_CODE_EMPTY|phone_code is missing|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_HASH_INVALID|Code hash invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
diff --git a/old_docs/API_docs_v91/methods/account_getNotifySettings.md b/old_docs/API_docs_v91/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v91/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v91/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v91/methods/account_getPasswordSettings.md b/old_docs/API_docs_v91/methods/account_getPasswordSettings.md
index 8ebb78ee..e41c6b67 100644
--- a/old_docs/API_docs_v91/methods/account_getPasswordSettings.md
+++ b/old_docs/API_docs_v91/methods/account_getPasswordSettings.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+Get the current 2FA settings
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password|[InputCheckPasswordSRP](../types/InputCheckPasswordSRP.md) | You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [account\_PasswordSettings](../types/account_PasswordSettings.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$account_PasswordSettings = $MadelineProto->account->getPasswordSettings(['password' => InputCheckPasswordSRP, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+account_PasswordSettings = account.getPasswordSettings({password=InputCheckPasswordSRP, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v91/methods/account_getPrivacy.md b/old_docs/API_docs_v91/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/old_docs/API_docs_v91/methods/account_getPrivacy.md
+++ b/old_docs/API_docs_v91/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v91/methods/account_getTmpPassword.md b/old_docs/API_docs_v91/methods/account_getTmpPassword.md
index 3a29d97a..0ae4061f 100644
--- a/old_docs/API_docs_v91/methods/account_getTmpPassword.md
+++ b/old_docs/API_docs_v91/methods/account_getTmpPassword.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
account_TmpPassword = account.getTmpPassword({password=InputCheckPasswordSRP, period=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_HASH_INVALID|The provided password hash is invalid|
-|TMP_PASSWORD_DISABLED|The temporary password is disabled|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
+|400|TMP_PASSWORD_DISABLED|The temporary password is disabled|
diff --git a/old_docs/API_docs_v91/methods/account_registerDevice.md b/old_docs/API_docs_v91/methods/account_registerDevice.md
index 7c34f6c4..a8e8c2a2 100644
--- a/old_docs/API_docs_v91/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v91/methods/account_registerDevice.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({token_type=int, token='string', app_sandbox=Bool, secret='bytes', other_uids={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v91/methods/account_reportPeer.md b/old_docs/API_docs_v91/methods/account_reportPeer.md
index a203c900..87b080eb 100644
--- a/old_docs/API_docs_v91/methods/account_reportPeer.md
+++ b/old_docs/API_docs_v91/methods/account_reportPeer.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.reportPeer({peer=InputPeer, reason=ReportReason, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v91/methods/account_resetAuthorization.md b/old_docs/API_docs_v91/methods/account_resetAuthorization.md
index c950992c..e8e8ecc4 100644
--- a/old_docs/API_docs_v91/methods/account_resetAuthorization.md
+++ b/old_docs/API_docs_v91/methods/account_resetAuthorization.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.resetAuthorization({hash=long, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v91/methods/account_sendChangePhoneCode.md b/old_docs/API_docs_v91/methods/account_sendChangePhoneCode.md
index d5be60ef..08e5e86e 100644
--- a/old_docs/API_docs_v91/methods/account_sendChangePhoneCode.md
+++ b/old_docs/API_docs_v91/methods/account_sendChangePhoneCode.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendChangePhoneCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v91/methods/account_sendConfirmPhoneCode.md b/old_docs/API_docs_v91/methods/account_sendConfirmPhoneCode.md
index 028a1fdc..9fa7b57e 100644
--- a/old_docs/API_docs_v91/methods/account_sendConfirmPhoneCode.md
+++ b/old_docs/API_docs_v91/methods/account_sendConfirmPhoneCode.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendConfirmPhoneCode({allow_flashcall=Bool, hash='string', current_number=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v91/methods/account_setAccountTTL.md b/old_docs/API_docs_v91/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/old_docs/API_docs_v91/methods/account_setAccountTTL.md
+++ b/old_docs/API_docs_v91/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/old_docs/API_docs_v91/methods/account_setPrivacy.md b/old_docs/API_docs_v91/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/old_docs/API_docs_v91/methods/account_setPrivacy.md
+++ b/old_docs/API_docs_v91/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v91/methods/account_unregisterDevice.md b/old_docs/API_docs_v91/methods/account_unregisterDevice.md
index 13d11e88..e39f0811 100644
--- a/old_docs/API_docs_v91/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v91/methods/account_unregisterDevice.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', other_uids={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v91/methods/account_updateNotifySettings.md b/old_docs/API_docs_v91/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v91/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v91/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v91/methods/account_updatePasswordSettings.md b/old_docs/API_docs_v91/methods/account_updatePasswordSettings.md
index 80f27228..7afb81ea 100644
--- a/old_docs/API_docs_v91/methods/account_updatePasswordSettings.md
+++ b/old_docs/API_docs_v91/methods/account_updatePasswordSettings.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password|[InputCheckPasswordSRP](../types/InputCheckPasswordSRP.md) | You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|new\_settings|[account\_PasswordInputSettings](../types/account_PasswordInputSettings.md) | New 2FA settings | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->account->updatePasswordSettings(['password' => InputCheckPasswordSRP, 'new_settings' => account_PasswordInputSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = account.updatePasswordSettings({password=InputCheckPasswordSRP, new_settings=account_PasswordInputSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EMAIL_UNCONFIRMED|Email unconfirmed|
+|400|EMAIL_UNCONFIRMED_X|The provided email isn't confirmed, X is the length of the verification code that was just sent to the email.|
+|400|NEW_SALT_INVALID|The new salt is invalid|
+|400|NEW_SETTINGS_INVALID|The new settings are invalid|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v91/methods/account_updateProfile.md b/old_docs/API_docs_v91/methods/account_updateProfile.md
index af5b6a0f..0d74c5e5 100644
--- a/old_docs/API_docs_v91/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v91/methods/account_updateProfile.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v91/methods/account_updateStatus.md b/old_docs/API_docs_v91/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v91/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v91/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v91/methods/account_updateUsername.md b/old_docs/API_docs_v91/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v91/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v91/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v91/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v91/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v91/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v91/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v91/methods/auth_cancelCode.md b/old_docs/API_docs_v91/methods/auth_cancelCode.md
index fcbd7713..a69e0118 100644
--- a/old_docs/API_docs_v91/methods/auth_cancelCode.md
+++ b/old_docs/API_docs_v91/methods/auth_cancelCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = auth.cancelCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v91/methods/auth_checkPassword.md b/old_docs/API_docs_v91/methods/auth_checkPassword.md
index 8d76c483..ad2a88a2 100644
--- a/old_docs/API_docs_v91/methods/auth_checkPassword.md
+++ b/old_docs/API_docs_v91/methods/auth_checkPassword.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password|[InputCheckPasswordSRP](../types/InputCheckPasswordSRP.md) | You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->checkPassword(['password' => InputCheckPasswordSRP, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.checkPassword({password=InputCheckPasswordSRP, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v91/methods/auth_exportAuthorization.md b/old_docs/API_docs_v91/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v91/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v91/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v91/methods/auth_importAuthorization.md b/old_docs/API_docs_v91/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v91/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v91/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v91/methods/auth_importBotAuthorization.md b/old_docs/API_docs_v91/methods/auth_importBotAuthorization.md
index 1a98c1b9..98a2f8ca 100644
--- a/old_docs/API_docs_v91/methods/auth_importBotAuthorization.md
+++ b/old_docs/API_docs_v91/methods/auth_importBotAuthorization.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|api\_id|[int](../types/int.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_hash|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|bot\_auth\_token|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importBotAuthorization(['api_id' => int, 'api_hash' => 'string', 'bot_auth_token' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importBotAuthorization({api_id=int, api_hash='string', bot_auth_token='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ACCESS_TOKEN_EXPIRED|Access token expired|
+|400|ACCESS_TOKEN_INVALID|Access token invalid|
+|400|API_ID_INVALID|API ID invalid|
diff --git a/old_docs/API_docs_v91/methods/auth_logOut.md b/old_docs/API_docs_v91/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v91/methods/auth_logOut.md
+++ b/old_docs/API_docs_v91/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v91/methods/auth_recoverPassword.md b/old_docs/API_docs_v91/methods/auth_recoverPassword.md
index 83ff5aed..d4bad9c5 100644
--- a/old_docs/API_docs_v91/methods/auth_recoverPassword.md
+++ b/old_docs/API_docs_v91/methods/auth_recoverPassword.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
auth_Authorization = auth.recoverPassword({code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_EMPTY|The provided code is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_EMPTY|The provided code is empty|
diff --git a/old_docs/API_docs_v91/methods/auth_requestPasswordRecovery.md b/old_docs/API_docs_v91/methods/auth_requestPasswordRecovery.md
index 1864bbb0..b6ad57ba 100644
--- a/old_docs/API_docs_v91/methods/auth_requestPasswordRecovery.md
+++ b/old_docs/API_docs_v91/methods/auth_requestPasswordRecovery.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
auth_PasswordRecovery = auth.requestPasswordRecovery({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_EMPTY|The provided password is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_EMPTY|The provided password is empty|
diff --git a/old_docs/API_docs_v91/methods/auth_resendCode.md b/old_docs/API_docs_v91/methods/auth_resendCode.md
index ff7868ea..ec730d75 100644
--- a/old_docs/API_docs_v91/methods/auth_resendCode.md
+++ b/old_docs/API_docs_v91/methods/auth_resendCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = auth.resendCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v91/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v91/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v91/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v91/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v91/methods/auth_sendCode.md b/old_docs/API_docs_v91/methods/auth_sendCode.md
index 9afebb55..1e9d1a4e 100644
--- a/old_docs/API_docs_v91/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v91/methods/auth_sendCode.md
@@ -7,8 +7,59 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|allow\_flashcall|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|current\_number|[Bool](../types/Bool.md) | Use phone_login instead | Optional|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['allow_flashcall' => Bool, 'phone_number' => 'string', 'current_number' => Bool, 'api_id' => int, 'api_hash' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({allow_flashcall=Bool, phone_number='string', current_number=Bool, api_id=int, api_hash='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v91/methods/auth_signIn.md b/old_docs/API_docs_v91/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v91/methods/auth_signIn.md
+++ b/old_docs/API_docs_v91/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v91/methods/auth_signUp.md b/old_docs/API_docs_v91/methods/auth_signUp.md
index 15960145..31154486 100644
--- a/old_docs/API_docs_v91/methods/auth_signUp.md
+++ b/old_docs/API_docs_v91/methods/auth_signUp.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', phone_code='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v91/methods/bots_answerWebhookJSONQuery.md b/old_docs/API_docs_v91/methods/bots_answerWebhookJSONQuery.md
index ae0fa6d9..f2233514 100644
--- a/old_docs/API_docs_v91/methods/bots_answerWebhookJSONQuery.md
+++ b/old_docs/API_docs_v91/methods/bots_answerWebhookJSONQuery.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = bots.answerWebhookJSONQuery({query_id=long, data=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v91/methods/bots_sendCustomRequest.md b/old_docs/API_docs_v91/methods/bots_sendCustomRequest.md
index c1fd8183..8a6a2df5 100644
--- a/old_docs/API_docs_v91/methods/bots_sendCustomRequest.md
+++ b/old_docs/API_docs_v91/methods/bots_sendCustomRequest.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
DataJSON = bots.sendCustomRequest({custom_method='string', params=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v91/methods/channels_checkUsername.md b/old_docs/API_docs_v91/methods/channels_checkUsername.md
index 483a2f6f..52365d34 100644
--- a/old_docs/API_docs_v91/methods/channels_checkUsername.md
+++ b/old_docs/API_docs_v91/methods/channels_checkUsername.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Bool = channels.checkUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v91/methods/channels_createChannel.md b/old_docs/API_docs_v91/methods/channels_createChannel.md
index b924e6a6..ecaee0ef 100644
--- a/old_docs/API_docs_v91/methods/channels_createChannel.md
+++ b/old_docs/API_docs_v91/methods/channels_createChannel.md
@@ -45,12 +45,12 @@ Or, if you're into Lua:
Updates = channels.createChannel({broadcast=Bool, megagroup=Bool, title='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_TITLE_EMPTY|No chat title provided|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
+|406|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v91/methods/channels_deleteChannel.md b/old_docs/API_docs_v91/methods/channels_deleteChannel.md
index 53a9c23d..1b8d2d48 100644
--- a/old_docs/API_docs_v91/methods/channels_deleteChannel.md
+++ b/old_docs/API_docs_v91/methods/channels_deleteChannel.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Updates = channels.deleteChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v91/methods/channels_deleteMessages.md b/old_docs/API_docs_v91/methods/channels_deleteMessages.md
index f76a9ad1..463ebad0 100644
--- a/old_docs/API_docs_v91/methods/channels_deleteMessages.md
+++ b/old_docs/API_docs_v91/methods/channels_deleteMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_AffectedMessages = channels.deleteMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v91/methods/channels_deleteUserHistory.md b/old_docs/API_docs_v91/methods/channels_deleteUserHistory.md
index 0a4e7d82..33905a7e 100644
--- a/old_docs/API_docs_v91/methods/channels_deleteUserHistory.md
+++ b/old_docs/API_docs_v91/methods/channels_deleteUserHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedHistory = channels.deleteUserHistory({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v91/methods/channels_editAbout.md b/old_docs/API_docs_v91/methods/channels_editAbout.md
index 47111668..d5e090e0 100644
--- a/old_docs/API_docs_v91/methods/channels_editAbout.md
+++ b/old_docs/API_docs_v91/methods/channels_editAbout.md
@@ -43,13 +43,13 @@ Or, if you're into Lua:
Bool = channels.editAbout({channel=InputChannel, about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
-|CHAT_ABOUT_TOO_LONG|Chat about too long|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ABOUT_NOT_MODIFIED|About text has not changed|
+|400|CHAT_ABOUT_TOO_LONG|Chat about too long|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v91/methods/channels_editAdmin.md b/old_docs/API_docs_v91/methods/channels_editAdmin.md
index 43858599..edb7cf55 100644
--- a/old_docs/API_docs_v91/methods/channels_editAdmin.md
+++ b/old_docs/API_docs_v91/methods/channels_editAdmin.md
@@ -44,19 +44,19 @@ Or, if you're into Lua:
Updates = channels.editAdmin({channel=InputChannel, user_id=InputUser, admin_rights=ChannelAdminRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ADMINS_TOO_MUCH|There are too many admins|
-|BOT_CHANNELS_NA|Bots can't edit admin privileges|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
-|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ADMINS_TOO_MUCH|There are too many admins|
+|400|BOT_CHANNELS_NA|Bots can't edit admin privileges|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
+|403|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v91/methods/channels_editBanned.md b/old_docs/API_docs_v91/methods/channels_editBanned.md
index cffb653e..1fd5f597 100644
--- a/old_docs/API_docs_v91/methods/channels_editBanned.md
+++ b/old_docs/API_docs_v91/methods/channels_editBanned.md
@@ -44,14 +44,14 @@ Or, if you're into Lua:
Updates = channels.editBanned({channel=InputChannel, user_id=InputUser, banned_rights=ChannelBannedRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ADMIN_INVALID|You're not an admin|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ADMIN_INVALID|You're not an admin|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v91/methods/channels_editPhoto.md b/old_docs/API_docs_v91/methods/channels_editPhoto.md
index bec0ba48..caef32d5 100644
--- a/old_docs/API_docs_v91/methods/channels_editPhoto.md
+++ b/old_docs/API_docs_v91/methods/channels_editPhoto.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editPhoto({channel=InputChannel, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|PHOTO_INVALID|Photo invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|PHOTO_INVALID|Photo invalid|
diff --git a/old_docs/API_docs_v91/methods/channels_editTitle.md b/old_docs/API_docs_v91/methods/channels_editTitle.md
index b5efeb39..d7cb33da 100644
--- a/old_docs/API_docs_v91/methods/channels_editTitle.md
+++ b/old_docs/API_docs_v91/methods/channels_editTitle.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editTitle({channel=InputChannel, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v91/methods/channels_exportInvite.md b/old_docs/API_docs_v91/methods/channels_exportInvite.md
index 0918b3e7..9d578deb 100644
--- a/old_docs/API_docs_v91/methods/channels_exportInvite.md
+++ b/old_docs/API_docs_v91/methods/channels_exportInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ExportedChatInvite = channels.exportInvite({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INVITE_HASH_EXPIRED|The invite link has expired|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
diff --git a/old_docs/API_docs_v91/methods/channels_exportMessageLink.md b/old_docs/API_docs_v91/methods/channels_exportMessageLink.md
index 5dea54a7..fc2f248b 100644
--- a/old_docs/API_docs_v91/methods/channels_exportMessageLink.md
+++ b/old_docs/API_docs_v91/methods/channels_exportMessageLink.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
ExportedMessageLink = channels.exportMessageLink({channel=InputChannel, id=int, grouped=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v91/methods/channels_getAdminLog.md b/old_docs/API_docs_v91/methods/channels_getAdminLog.md
index 377c7320..adb87748 100644
--- a/old_docs/API_docs_v91/methods/channels_getAdminLog.md
+++ b/old_docs/API_docs_v91/methods/channels_getAdminLog.md
@@ -48,12 +48,12 @@ Or, if you're into Lua:
channels_AdminLogResults = channels.getAdminLog({channel=InputChannel, q='string', events_filter=ChannelAdminLogEventsFilter, admins={InputUser}, max_id=long, min_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v91/methods/channels_getChannels.md b/old_docs/API_docs_v91/methods/channels_getChannels.md
index 78d50641..95d7a188 100644
--- a/old_docs/API_docs_v91/methods/channels_getChannels.md
+++ b/old_docs/API_docs_v91/methods/channels_getChannels.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = channels.getChannels({id={InputChannel}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v91/methods/channels_getFullChannel.md b/old_docs/API_docs_v91/methods/channels_getFullChannel.md
index 45a8ec72..ebd53de4 100644
--- a/old_docs/API_docs_v91/methods/channels_getFullChannel.md
+++ b/old_docs/API_docs_v91/methods/channels_getFullChannel.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->channels->getFullChannel(['channel' => InputChannel, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = channels.getFullChannel({channel=InputChannel, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v91/methods/channels_getLeftChannels.md b/old_docs/API_docs_v91/methods/channels_getLeftChannels.md
index 2d256964..fac7ae07 100644
--- a/old_docs/API_docs_v91/methods/channels_getLeftChannels.md
+++ b/old_docs/API_docs_v91/methods/channels_getLeftChannels.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_Chats = channels.getLeftChannels({offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TAKEOUT_REQUIRED|A takeout session has to be initialized, first|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|TAKEOUT_REQUIRED|A takeout session has to be initialized, first|
diff --git a/old_docs/API_docs_v91/methods/channels_getMessages.md b/old_docs/API_docs_v91/methods/channels_getMessages.md
index 90cf5a47..f1ae0a4d 100644
--- a/old_docs/API_docs_v91/methods/channels_getMessages.md
+++ b/old_docs/API_docs_v91/methods/channels_getMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_Messages = channels.getMessages({channel=InputChannel, id={InputMessage}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
diff --git a/old_docs/API_docs_v91/methods/channels_getParticipant.md b/old_docs/API_docs_v91/methods/channels_getParticipant.md
index 6633114f..808156fd 100644
--- a/old_docs/API_docs_v91/methods/channels_getParticipant.md
+++ b/old_docs/API_docs_v91/methods/channels_getParticipant.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
channels_ChannelParticipant = channels.getParticipant({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v91/methods/channels_getParticipants.md b/old_docs/API_docs_v91/methods/channels_getParticipants.md
index 5ff242e6..fb7a39df 100644
--- a/old_docs/API_docs_v91/methods/channels_getParticipants.md
+++ b/old_docs/API_docs_v91/methods/channels_getParticipants.md
@@ -46,14 +46,14 @@ Or, if you're into Lua:
channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, filter=ChannelParticipantsFilter, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v91/methods/channels_inviteToChannel.md b/old_docs/API_docs_v91/methods/channels_inviteToChannel.md
index f7093f13..d8c5e88a 100644
--- a/old_docs/API_docs_v91/methods/channels_inviteToChannel.md
+++ b/old_docs/API_docs_v91/methods/channels_inviteToChannel.md
@@ -43,25 +43,25 @@ Or, if you're into Lua:
Updates = channels.inviteToChannel({channel=InputChannel, users={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
-|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_BLOCKED|User blocked|
-|USER_BOT|Bots can only be admins in channels.|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_KICKED|This user was kicked from this supergroup/channel|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
+|400|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_BLOCKED|User blocked|
+|400|USER_BOT|Bots can only be admins in channels.|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_KICKED|This user was kicked from this supergroup/channel|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v91/methods/channels_joinChannel.md b/old_docs/API_docs_v91/methods/channels_joinChannel.md
index b056031a..a4a7c177 100644
--- a/old_docs/API_docs_v91/methods/channels_joinChannel.md
+++ b/old_docs/API_docs_v91/methods/channels_joinChannel.md
@@ -42,15 +42,15 @@ Or, if you're into Lua:
Updates = channels.joinChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
diff --git a/old_docs/API_docs_v91/methods/channels_leaveChannel.md b/old_docs/API_docs_v91/methods/channels_leaveChannel.md
index fdea13ba..6538d443 100644
--- a/old_docs/API_docs_v91/methods/channels_leaveChannel.md
+++ b/old_docs/API_docs_v91/methods/channels_leaveChannel.md
@@ -42,14 +42,14 @@ Or, if you're into Lua:
Updates = channels.leaveChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
-|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
diff --git a/old_docs/API_docs_v91/methods/channels_readHistory.md b/old_docs/API_docs_v91/methods/channels_readHistory.md
index 93dc075f..3532dae0 100644
--- a/old_docs/API_docs_v91/methods/channels_readHistory.md
+++ b/old_docs/API_docs_v91/methods/channels_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readHistory({channel=InputChannel, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v91/methods/channels_readMessageContents.md b/old_docs/API_docs_v91/methods/channels_readMessageContents.md
index 80ddf2b0..8cd8c620 100644
--- a/old_docs/API_docs_v91/methods/channels_readMessageContents.md
+++ b/old_docs/API_docs_v91/methods/channels_readMessageContents.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readMessageContents({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v91/methods/channels_reportSpam.md b/old_docs/API_docs_v91/methods/channels_reportSpam.md
index db80676a..7e273cc5 100644
--- a/old_docs/API_docs_v91/methods/channels_reportSpam.md
+++ b/old_docs/API_docs_v91/methods/channels_reportSpam.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
Bool = channels.reportSpam({channel=InputChannel, user_id=InputUser, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
diff --git a/old_docs/API_docs_v91/methods/channels_setStickers.md b/old_docs/API_docs_v91/methods/channels_setStickers.md
index 10cd68bf..c9b95527 100644
--- a/old_docs/API_docs_v91/methods/channels_setStickers.md
+++ b/old_docs/API_docs_v91/methods/channels_setStickers.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.setStickers({channel=InputChannel, stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PARTICIPANTS_TOO_FEW|Not enough participants|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PARTICIPANTS_TOO_FEW|Not enough participants|
diff --git a/old_docs/API_docs_v91/methods/channels_toggleInvites.md b/old_docs/API_docs_v91/methods/channels_toggleInvites.md
index e5d3fba1..6266d30b 100644
--- a/old_docs/API_docs_v91/methods/channels_toggleInvites.md
+++ b/old_docs/API_docs_v91/methods/channels_toggleInvites.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.toggleInvites({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v91/methods/channels_toggleSignatures.md b/old_docs/API_docs_v91/methods/channels_toggleSignatures.md
index cdfc0fda..f8624946 100644
--- a/old_docs/API_docs_v91/methods/channels_toggleSignatures.md
+++ b/old_docs/API_docs_v91/methods/channels_toggleSignatures.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = channels.toggleSignatures({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v91/methods/channels_updateUsername.md b/old_docs/API_docs_v91/methods/channels_updateUsername.md
index 677712f9..48d250e6 100644
--- a/old_docs/API_docs_v91/methods/channels_updateUsername.md
+++ b/old_docs/API_docs_v91/methods/channels_updateUsername.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Bool = channels.updateUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_OCCUPIED|The provided username is already occupied|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
diff --git a/old_docs/API_docs_v91/methods/contacts_block.md b/old_docs/API_docs_v91/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v91/methods/contacts_block.md
+++ b/old_docs/API_docs_v91/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v91/methods/contacts_deleteContact.md b/old_docs/API_docs_v91/methods/contacts_deleteContact.md
index ba9569e4..a9321d64 100644
--- a/old_docs/API_docs_v91/methods/contacts_deleteContact.md
+++ b/old_docs/API_docs_v91/methods/contacts_deleteContact.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
contacts_Link = contacts.deleteContact({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v91/methods/contacts_deleteContacts.md b/old_docs/API_docs_v91/methods/contacts_deleteContacts.md
index bfc91fdd..3c8e90f0 100644
--- a/old_docs/API_docs_v91/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v91/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v91/methods/contacts_getStatuses.md b/old_docs/API_docs_v91/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v91/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v91/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v91/methods/contacts_getTopPeers.md b/old_docs/API_docs_v91/methods/contacts_getTopPeers.md
index 4dc13d08..9ad9ab01 100644
--- a/old_docs/API_docs_v91/methods/contacts_getTopPeers.md
+++ b/old_docs/API_docs_v91/methods/contacts_getTopPeers.md
@@ -50,10 +50,10 @@ Or, if you're into Lua:
contacts_TopPeers = contacts.getTopPeers({correspondents=Bool, bots_pm=Bool, bots_inline=Bool, phone_calls=Bool, groups=Bool, channels=Bool, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TYPES_EMPTY|No top peer type was provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TYPES_EMPTY|No top peer type was provided|
diff --git a/old_docs/API_docs_v91/methods/contacts_resetTopPeerRating.md b/old_docs/API_docs_v91/methods/contacts_resetTopPeerRating.md
index 43cf1685..787be177 100644
--- a/old_docs/API_docs_v91/methods/contacts_resetTopPeerRating.md
+++ b/old_docs/API_docs_v91/methods/contacts_resetTopPeerRating.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = contacts.resetTopPeerRating({category=TopPeerCategory, peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v91/methods/contacts_resolveUsername.md b/old_docs/API_docs_v91/methods/contacts_resolveUsername.md
index fab56bb1..68f709db 100644
--- a/old_docs/API_docs_v91/methods/contacts_resolveUsername.md
+++ b/old_docs/API_docs_v91/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [contacts\_ResolvedPeer](../types/contacts_ResolvedPeer.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$contacts_ResolvedPeer = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+contacts_ResolvedPeer = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v91/methods/contacts_search.md b/old_docs/API_docs_v91/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v91/methods/contacts_search.md
+++ b/old_docs/API_docs_v91/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v91/methods/contacts_unblock.md b/old_docs/API_docs_v91/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v91/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v91/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v91/methods/help_getCdnConfig.md b/old_docs/API_docs_v91/methods/help_getCdnConfig.md
index 9e047a1d..ba526365 100644
--- a/old_docs/API_docs_v91/methods/help_getCdnConfig.md
+++ b/old_docs/API_docs_v91/methods/help_getCdnConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
CdnConfig = help.getCdnConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v91/methods/help_getConfig.md b/old_docs/API_docs_v91/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v91/methods/help_getConfig.md
+++ b/old_docs/API_docs_v91/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v91/methods/initConnection.md b/old_docs/API_docs_v91/methods/initConnection.md
index 69d29401..5c4bfab9 100644
--- a/old_docs/API_docs_v91/methods/initConnection.md
+++ b/old_docs/API_docs_v91/methods/initConnection.md
@@ -50,11 +50,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', system_lang_code='string', lang_pack='string', lang_code='string', proxy=InputClientProxy, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v91/methods/invokeWithLayer.md b/old_docs/API_docs_v91/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/old_docs/API_docs_v91/methods/invokeWithLayer.md
+++ b/old_docs/API_docs_v91/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v91/methods/langpack_getDifference.md b/old_docs/API_docs_v91/methods/langpack_getDifference.md
index 436846b6..68e16858 100644
--- a/old_docs/API_docs_v91/methods/langpack_getDifference.md
+++ b/old_docs/API_docs_v91/methods/langpack_getDifference.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getDifference({lang_code='string', from_version=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v91/methods/langpack_getLangPack.md b/old_docs/API_docs_v91/methods/langpack_getLangPack.md
index 55d30529..d2280670 100644
--- a/old_docs/API_docs_v91/methods/langpack_getLangPack.md
+++ b/old_docs/API_docs_v91/methods/langpack_getLangPack.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getLangPack({lang_pack='string', lang_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v91/methods/langpack_getLanguages.md b/old_docs/API_docs_v91/methods/langpack_getLanguages.md
index d4b9734e..686a50f5 100644
--- a/old_docs/API_docs_v91/methods/langpack_getLanguages.md
+++ b/old_docs/API_docs_v91/methods/langpack_getLanguages.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Vector_of_LangPackLanguage = langpack.getLanguages({lang_pack='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v91/methods/langpack_getStrings.md b/old_docs/API_docs_v91/methods/langpack_getStrings.md
index 65f65dfc..f0463eed 100644
--- a/old_docs/API_docs_v91/methods/langpack_getStrings.md
+++ b/old_docs/API_docs_v91/methods/langpack_getStrings.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Vector_of_LangPackString = langpack.getStrings({lang_pack='string', lang_code='string', keys={'string'}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_acceptEncryption.md b/old_docs/API_docs_v91/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v91/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v91/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v91/methods/messages_addChatUser.md b/old_docs/API_docs_v91/methods/messages_addChatUser.md
index bc0d6253..b5e164b2 100644
--- a/old_docs/API_docs_v91/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v91/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
Updates = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v91/methods/messages_checkChatInvite.md b/old_docs/API_docs_v91/methods/messages_checkChatInvite.md
index de28b09b..0d13d55e 100644
--- a/old_docs/API_docs_v91/methods/messages_checkChatInvite.md
+++ b/old_docs/API_docs_v91/methods/messages_checkChatInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ChatInvite = messages.checkChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_createChat.md b/old_docs/API_docs_v91/methods/messages_createChat.md
index 8f6e9672..b2623f1d 100644
--- a/old_docs/API_docs_v91/methods/messages_createChat.md
+++ b/old_docs/API_docs_v91/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v91/methods/messages_deleteChatUser.md b/old_docs/API_docs_v91/methods/messages_deleteChatUser.md
index 63529571..11b9b220 100644
--- a/old_docs/API_docs_v91/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v91/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v91/methods/messages_deleteHistory.md b/old_docs/API_docs_v91/methods/messages_deleteHistory.md
index 2ade177e..338c2cdf 100644
--- a/old_docs/API_docs_v91/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v91/methods/messages_deleteHistory.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({just_clear=Bool, peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_deleteMessages.md b/old_docs/API_docs_v91/methods/messages_deleteMessages.md
index 4c65080a..41517dd0 100644
--- a/old_docs/API_docs_v91/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v91/methods/messages_deleteMessages.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.deleteMessages({revoke=Bool, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v91/methods/messages_discardEncryption.md b/old_docs/API_docs_v91/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v91/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v91/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_editChatAdmin.md b/old_docs/API_docs_v91/methods/messages_editChatAdmin.md
index 2b4dc94c..6f6c1376 100644
--- a/old_docs/API_docs_v91/methods/messages_editChatAdmin.md
+++ b/old_docs/API_docs_v91/methods/messages_editChatAdmin.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.editChatAdmin({chat_id=InputPeer, user_id=InputUser, is_admin=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_editChatPhoto.md b/old_docs/API_docs_v91/methods/messages_editChatPhoto.md
index 2a82c232..a21a03b9 100644
--- a/old_docs/API_docs_v91/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v91/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Updates = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_editChatTitle.md b/old_docs/API_docs_v91/methods/messages_editChatTitle.md
index 2c338ad6..72f78741 100644
--- a/old_docs/API_docs_v91/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v91/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v91/methods/messages_editInlineBotMessage.md b/old_docs/API_docs_v91/methods/messages_editInlineBotMessage.md
index 67313f15..5f7a31c9 100644
--- a/old_docs/API_docs_v91/methods/messages_editInlineBotMessage.md
+++ b/old_docs/API_docs_v91/methods/messages_editInlineBotMessage.md
@@ -96,11 +96,11 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
diff --git a/old_docs/API_docs_v91/methods/messages_editMessage.md b/old_docs/API_docs_v91/methods/messages_editMessage.md
index 720f4285..d394d1aa 100644
--- a/old_docs/API_docs_v91/methods/messages_editMessage.md
+++ b/old_docs/API_docs_v91/methods/messages_editMessage.md
@@ -97,20 +97,20 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v91/methods/messages_exportChatInvite.md b/old_docs/API_docs_v91/methods/messages_exportChatInvite.md
index f3449e79..bc6272e4 100644
--- a/old_docs/API_docs_v91/methods/messages_exportChatInvite.md
+++ b/old_docs/API_docs_v91/methods/messages_exportChatInvite.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
ExportedChatInvite = messages.exportChatInvite({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_faveSticker.md b/old_docs/API_docs_v91/methods/messages_faveSticker.md
index a8b1ab56..9f9f423d 100644
--- a/old_docs/API_docs_v91/methods/messages_faveSticker.md
+++ b/old_docs/API_docs_v91/methods/messages_faveSticker.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.faveSticker({id=InputDocument, unfave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_forwardMessages.md b/old_docs/API_docs_v91/methods/messages_forwardMessages.md
index d2453d05..743fa7a6 100644
--- a/old_docs/API_docs_v91/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v91/methods/messages_forwardMessages.md
@@ -48,29 +48,29 @@ Or, if you're into Lua:
Updates = messages.forwardMessages({silent=Bool, background=Bool, with_my_score=Bool, grouped=Bool, from_peer=InputPeer, id={int}, to_peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v91/methods/messages_getBotCallbackAnswer.md b/old_docs/API_docs_v91/methods/messages_getBotCallbackAnswer.md
index f97fa5b0..3f8cc23b 100644
--- a/old_docs/API_docs_v91/methods/messages_getBotCallbackAnswer.md
+++ b/old_docs/API_docs_v91/methods/messages_getBotCallbackAnswer.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
messages_BotCallbackAnswer = messages.getBotCallbackAnswer({game=Bool, peer=InputPeer, msg_id=int, data='bytes', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v91/methods/messages_getChats.md b/old_docs/API_docs_v91/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/old_docs/API_docs_v91/methods/messages_getChats.md
+++ b/old_docs/API_docs_v91/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_getCommonChats.md b/old_docs/API_docs_v91/methods/messages_getCommonChats.md
index 9470a0ee..cff23c3f 100644
--- a/old_docs/API_docs_v91/methods/messages_getCommonChats.md
+++ b/old_docs/API_docs_v91/methods/messages_getCommonChats.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_Chats = messages.getCommonChats({user_id=InputUser, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_getDhConfig.md b/old_docs/API_docs_v91/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v91/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v91/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_getDialogs.md b/old_docs/API_docs_v91/methods/messages_getDialogs.md
index 5d5a75ff..da3efe36 100644
--- a/old_docs/API_docs_v91/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v91/methods/messages_getDialogs.md
@@ -47,13 +47,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({exclude_pinned=Bool, offset_date=int, offset_id=int, offset_peer=InputPeer, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v91/methods/messages_getDocumentByHash.md b/old_docs/API_docs_v91/methods/messages_getDocumentByHash.md
index 73a235d5..06469c52 100644
--- a/old_docs/API_docs_v91/methods/messages_getDocumentByHash.md
+++ b/old_docs/API_docs_v91/methods/messages_getDocumentByHash.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Document = messages.getDocumentByHash({sha256='bytes', size=int, mime_type='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_getFullChat.md b/old_docs/API_docs_v91/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v91/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v91/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_getGameHighScores.md b/old_docs/API_docs_v91/methods/messages_getGameHighScores.md
index 249e1d09..5c484bbb 100644
--- a/old_docs/API_docs_v91/methods/messages_getGameHighScores.md
+++ b/old_docs/API_docs_v91/methods/messages_getGameHighScores.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
messages_HighScores = messages.getGameHighScores({peer=InputPeer, id=int, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v91/methods/messages_getHistory.md b/old_docs/API_docs_v91/methods/messages_getHistory.md
index d623a61e..a0389d7b 100644
--- a/old_docs/API_docs_v91/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v91/methods/messages_getHistory.md
@@ -49,16 +49,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset_id=int, offset_date=int, add_offset=int, limit=int, max_id=int, min_id=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v91/methods/messages_getInlineBotResults.md b/old_docs/API_docs_v91/methods/messages_getInlineBotResults.md
index 1efcb412..17d678b7 100644
--- a/old_docs/API_docs_v91/methods/messages_getInlineBotResults.md
+++ b/old_docs/API_docs_v91/methods/messages_getInlineBotResults.md
@@ -46,13 +46,13 @@ Or, if you're into Lua:
messages_BotResults = messages.getInlineBotResults({bot=InputUser, peer=InputPeer, geo_point=InputGeoPoint, query='string', offset='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
-|BOT_INVALID|This is not a valid bot|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
+|400|BOT_INVALID|This is not a valid bot|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v91/methods/messages_getInlineGameHighScores.md b/old_docs/API_docs_v91/methods/messages_getInlineGameHighScores.md
index e68c6db8..ac33b6b8 100644
--- a/old_docs/API_docs_v91/methods/messages_getInlineGameHighScores.md
+++ b/old_docs/API_docs_v91/methods/messages_getInlineGameHighScores.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_HighScores = messages.getInlineGameHighScores({id=InputBotInlineMessageID, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v91/methods/messages_getMessageEditData.md b/old_docs/API_docs_v91/methods/messages_getMessageEditData.md
index 7f1b7164..b907d78c 100644
--- a/old_docs/API_docs_v91/methods/messages_getMessageEditData.md
+++ b/old_docs/API_docs_v91/methods/messages_getMessageEditData.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_MessageEditData = messages.getMessageEditData({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v91/methods/messages_getMessagesViews.md b/old_docs/API_docs_v91/methods/messages_getMessagesViews.md
index 3d490315..143e568c 100644
--- a/old_docs/API_docs_v91/methods/messages_getMessagesViews.md
+++ b/old_docs/API_docs_v91/methods/messages_getMessagesViews.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
Vector_of_int = messages.getMessagesViews({peer=InputPeer, id={int}, increment=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_getPeerDialogs.md b/old_docs/API_docs_v91/methods/messages_getPeerDialogs.md
index 02eb9b43..17e0d11e 100644
--- a/old_docs/API_docs_v91/methods/messages_getPeerDialogs.md
+++ b/old_docs/API_docs_v91/methods/messages_getPeerDialogs.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPeerDialogs({peers={InputDialogPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_getPeerSettings.md b/old_docs/API_docs_v91/methods/messages_getPeerSettings.md
index 26dafb9b..69032ff5 100644
--- a/old_docs/API_docs_v91/methods/messages_getPeerSettings.md
+++ b/old_docs/API_docs_v91/methods/messages_getPeerSettings.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
PeerSettings = messages.getPeerSettings({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_getPinnedDialogs.md b/old_docs/API_docs_v91/methods/messages_getPinnedDialogs.md
index 828d622e..f106098d 100644
--- a/old_docs/API_docs_v91/methods/messages_getPinnedDialogs.md
+++ b/old_docs/API_docs_v91/methods/messages_getPinnedDialogs.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPinnedDialogs({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FOLDER_ID_INVALID|Invalid folder ID|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FOLDER_ID_INVALID|Invalid folder ID|
diff --git a/old_docs/API_docs_v91/methods/messages_getStatsURL.md b/old_docs/API_docs_v91/methods/messages_getStatsURL.md
index fb11ac89..87cbb88f 100644
--- a/old_docs/API_docs_v91/methods/messages_getStatsURL.md
+++ b/old_docs/API_docs_v91/methods/messages_getStatsURL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
StatsURL = messages.getStatsURL({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_getStickerSet.md b/old_docs/API_docs_v91/methods/messages_getStickerSet.md
index 57bce84d..487316cc 100644
--- a/old_docs/API_docs_v91/methods/messages_getStickerSet.md
+++ b/old_docs/API_docs_v91/methods/messages_getStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_StickerSet = messages.getStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_getUnreadMentions.md b/old_docs/API_docs_v91/methods/messages_getUnreadMentions.md
index 1fa1f269..923229eb 100644
--- a/old_docs/API_docs_v91/methods/messages_getUnreadMentions.md
+++ b/old_docs/API_docs_v91/methods/messages_getUnreadMentions.md
@@ -47,10 +47,10 @@ Or, if you're into Lua:
messages_Messages = messages.getUnreadMentions({peer=InputPeer, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_getWebPage.md b/old_docs/API_docs_v91/methods/messages_getWebPage.md
index ce51ff41..63ef5e93 100644
--- a/old_docs/API_docs_v91/methods/messages_getWebPage.md
+++ b/old_docs/API_docs_v91/methods/messages_getWebPage.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
WebPage = messages.getWebPage({url='string', hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|WC_CONVERT_URL_INVALID|WC convert URL invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|WC_CONVERT_URL_INVALID|WC convert URL invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_hideReportSpam.md b/old_docs/API_docs_v91/methods/messages_hideReportSpam.md
index c4bf7399..57756d2e 100644
--- a/old_docs/API_docs_v91/methods/messages_hideReportSpam.md
+++ b/old_docs/API_docs_v91/methods/messages_hideReportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.hideReportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_importChatInvite.md b/old_docs/API_docs_v91/methods/messages_importChatInvite.md
index 12120867..101b4b19 100644
--- a/old_docs/API_docs_v91/methods/messages_importChatInvite.md
+++ b/old_docs/API_docs_v91/methods/messages_importChatInvite.md
@@ -42,16 +42,16 @@ Or, if you're into Lua:
Updates = messages.importChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v91/methods/messages_installStickerSet.md b/old_docs/API_docs_v91/methods/messages_installStickerSet.md
index 21a57a85..67f2aca0 100644
--- a/old_docs/API_docs_v91/methods/messages_installStickerSet.md
+++ b/old_docs/API_docs_v91/methods/messages_installStickerSet.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_StickerSetInstallResult = messages.installStickerSet({stickerset=InputStickerSet, archived=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_migrateChat.md b/old_docs/API_docs_v91/methods/messages_migrateChat.md
index a72f4c11..ee4010eb 100644
--- a/old_docs/API_docs_v91/methods/messages_migrateChat.md
+++ b/old_docs/API_docs_v91/methods/messages_migrateChat.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
Updates = messages.migrateChat({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v91/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v91/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v91/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v91/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v91/methods/messages_readHistory.md b/old_docs/API_docs_v91/methods/messages_readHistory.md
index 2ad5cd09..a7f0eca7 100644
--- a/old_docs/API_docs_v91/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v91/methods/messages_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.readHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v91/methods/messages_receivedQueue.md b/old_docs/API_docs_v91/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v91/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v91/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v91/methods/messages_reorderPinnedDialogs.md b/old_docs/API_docs_v91/methods/messages_reorderPinnedDialogs.md
index 49aaca93..2452409a 100644
--- a/old_docs/API_docs_v91/methods/messages_reorderPinnedDialogs.md
+++ b/old_docs/API_docs_v91/methods/messages_reorderPinnedDialogs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.reorderPinnedDialogs({force=Bool, order={InputDialogPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_reportEncryptedSpam.md b/old_docs/API_docs_v91/methods/messages_reportEncryptedSpam.md
index 9b1e868b..aeac27ef 100644
--- a/old_docs/API_docs_v91/methods/messages_reportEncryptedSpam.md
+++ b/old_docs/API_docs_v91/methods/messages_reportEncryptedSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportEncryptedSpam({peer=InputEncryptedChat, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_reportSpam.md b/old_docs/API_docs_v91/methods/messages_reportSpam.md
index e92fba13..dc256e55 100644
--- a/old_docs/API_docs_v91/methods/messages_reportSpam.md
+++ b/old_docs/API_docs_v91/methods/messages_reportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_requestEncryption.md b/old_docs/API_docs_v91/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v91/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v91/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_saveDraft.md b/old_docs/API_docs_v91/methods/messages_saveDraft.md
index 791ce234..ea6d407e 100644
--- a/old_docs/API_docs_v91/methods/messages_saveDraft.md
+++ b/old_docs/API_docs_v91/methods/messages_saveDraft.md
@@ -89,10 +89,10 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_saveGif.md b/old_docs/API_docs_v91/methods/messages_saveGif.md
index f504ff9e..010e17ec 100644
--- a/old_docs/API_docs_v91/methods/messages_saveGif.md
+++ b/old_docs/API_docs_v91/methods/messages_saveGif.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.saveGif({id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|GIF_ID_INVALID|The provided GIF ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|GIF_ID_INVALID|The provided GIF ID is invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_saveRecentSticker.md b/old_docs/API_docs_v91/methods/messages_saveRecentSticker.md
index 98c74efd..072b6fe9 100644
--- a/old_docs/API_docs_v91/methods/messages_saveRecentSticker.md
+++ b/old_docs/API_docs_v91/methods/messages_saveRecentSticker.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.saveRecentSticker({attached=Bool, id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_search.md b/old_docs/API_docs_v91/methods/messages_search.md
index 83cb34c6..07529b40 100644
--- a/old_docs/API_docs_v91/methods/messages_search.md
+++ b/old_docs/API_docs_v91/methods/messages_search.md
@@ -53,16 +53,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({peer=InputPeer, q='string', from_id=InputUser, filter=MessagesFilter, min_date=int, max_date=int, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_searchGifs.md b/old_docs/API_docs_v91/methods/messages_searchGifs.md
index 7be4173b..1602d35e 100644
--- a/old_docs/API_docs_v91/methods/messages_searchGifs.md
+++ b/old_docs/API_docs_v91/methods/messages_searchGifs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_FoundGifs = messages.searchGifs({q='string', offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v91/methods/messages_searchGlobal.md b/old_docs/API_docs_v91/methods/messages_searchGlobal.md
index fb38398b..c8da163c 100644
--- a/old_docs/API_docs_v91/methods/messages_searchGlobal.md
+++ b/old_docs/API_docs_v91/methods/messages_searchGlobal.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
messages_Messages = messages.searchGlobal({q='string', offset_date=int, offset_peer=InputPeer, offset_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v91/methods/messages_sendEncrypted.md b/old_docs/API_docs_v91/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v91/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v91/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v91/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v91/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v91/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v91/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v91/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v91/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v91/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v91/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v91/methods/messages_sendInlineBotResult.md b/old_docs/API_docs_v91/methods/messages_sendInlineBotResult.md
index 96d7571a..642ba34f 100644
--- a/old_docs/API_docs_v91/methods/messages_sendInlineBotResult.md
+++ b/old_docs/API_docs_v91/methods/messages_sendInlineBotResult.md
@@ -49,15 +49,15 @@ Or, if you're into Lua:
Updates = messages.sendInlineBotResult({silent=Bool, background=Bool, clear_draft=Bool, hide_via=Bool, peer=InputPeer, reply_to_msg_id=int, query_id=long, id='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INLINE_RESULT_EXPIRED|The inline query expired|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|QUERY_ID_EMPTY|The query ID is empty|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INLINE_RESULT_EXPIRED|The inline query expired|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|QUERY_ID_EMPTY|The query ID is empty|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v91/methods/messages_sendMedia.md b/old_docs/API_docs_v91/methods/messages_sendMedia.md
index 44c604c6..a2244583 100644
--- a/old_docs/API_docs_v91/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v91/methods/messages_sendMedia.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v91/methods/messages_sendMessage.md b/old_docs/API_docs_v91/methods/messages_sendMessage.md
index 5641ebc3..e0ab305d 100644
--- a/old_docs/API_docs_v91/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v91/methods/messages_sendMessage.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v91/methods/messages_sendMultiMedia.md b/old_docs/API_docs_v91/methods/messages_sendMultiMedia.md
index 9ebdcb88..5684a6d2 100644
--- a/old_docs/API_docs_v91/methods/messages_sendMultiMedia.md
+++ b/old_docs/API_docs_v91/methods/messages_sendMultiMedia.md
@@ -47,11 +47,11 @@ Or, if you're into Lua:
Updates = messages.sendMultiMedia({silent=Bool, background=Bool, clear_draft=Bool, peer=InputPeer, reply_to_msg_id=int, multi_media={InputSingleMedia}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_sendScreenshotNotification.md b/old_docs/API_docs_v91/methods/messages_sendScreenshotNotification.md
index 3f5bb36d..4e4e40f5 100644
--- a/old_docs/API_docs_v91/methods/messages_sendScreenshotNotification.md
+++ b/old_docs/API_docs_v91/methods/messages_sendScreenshotNotification.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = messages.sendScreenshotNotification({peer=InputPeer, reply_to_msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_setBotCallbackAnswer.md b/old_docs/API_docs_v91/methods/messages_setBotCallbackAnswer.md
index ed058b4f..630ca61c 100644
--- a/old_docs/API_docs_v91/methods/messages_setBotCallbackAnswer.md
+++ b/old_docs/API_docs_v91/methods/messages_setBotCallbackAnswer.md
@@ -52,11 +52,11 @@ Bool = messages.setBotCallbackAnswer({alert=Bool, query_id=long, message='string
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|URL_INVALID|Invalid URL provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|URL_INVALID|Invalid URL provided|
diff --git a/old_docs/API_docs_v91/methods/messages_setBotPrecheckoutResults.md b/old_docs/API_docs_v91/methods/messages_setBotPrecheckoutResults.md
index cc615123..d6e0e61b 100644
--- a/old_docs/API_docs_v91/methods/messages_setBotPrecheckoutResults.md
+++ b/old_docs/API_docs_v91/methods/messages_setBotPrecheckoutResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotPrecheckoutResults({success=Bool, query_id=long, error='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ERROR_TEXT_EMPTY|The provided error message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ERROR_TEXT_EMPTY|The provided error message is empty|
diff --git a/old_docs/API_docs_v91/methods/messages_setBotShippingResults.md b/old_docs/API_docs_v91/methods/messages_setBotShippingResults.md
index f3a86f4f..adc4f64f 100644
--- a/old_docs/API_docs_v91/methods/messages_setBotShippingResults.md
+++ b/old_docs/API_docs_v91/methods/messages_setBotShippingResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotShippingResults({query_id=long, error='string', shipping_options={ShippingOption}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v91/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v91/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v91/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_setGameScore.md b/old_docs/API_docs_v91/methods/messages_setGameScore.md
index 548ee889..429b04c6 100644
--- a/old_docs/API_docs_v91/methods/messages_setGameScore.md
+++ b/old_docs/API_docs_v91/methods/messages_setGameScore.md
@@ -47,12 +47,12 @@ Or, if you're into Lua:
Updates = messages.setGameScore({edit_message=Bool, force=Bool, peer=InputPeer, id=int, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v91/methods/messages_setInlineBotResults.md b/old_docs/API_docs_v91/methods/messages_setInlineBotResults.md
index ab388e39..df4c30d4 100644
--- a/old_docs/API_docs_v91/methods/messages_setInlineBotResults.md
+++ b/old_docs/API_docs_v91/methods/messages_setInlineBotResults.md
@@ -48,23 +48,23 @@ Or, if you're into Lua:
Bool = messages.setInlineBotResults({gallery=Bool, private=Bool, query_id=long, results={InputBotInlineResult}, cache_time=int, next_offset='string', switch_pm=InlineBotSwitchPM, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ARTICLE_TITLE_EMPTY|The title of the article is empty|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|PHOTO_INVALID|Photo invalid|
-|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
-|QUERY_ID_INVALID|The query ID is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|RESULT_TYPE_INVALID|Result type invalid|
-|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
-|START_PARAM_INVALID|Start parameter invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ARTICLE_TITLE_EMPTY|The title of the article is empty|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|PHOTO_INVALID|Photo invalid|
+|400|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|RESULT_TYPE_INVALID|Result type invalid|
+|400|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
+|400|START_PARAM_INVALID|Start parameter invalid|
+|403|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v91/methods/messages_setInlineGameScore.md b/old_docs/API_docs_v91/methods/messages_setInlineGameScore.md
index 5eeb1540..62b163d5 100644
--- a/old_docs/API_docs_v91/methods/messages_setInlineGameScore.md
+++ b/old_docs/API_docs_v91/methods/messages_setInlineGameScore.md
@@ -46,11 +46,11 @@ Or, if you're into Lua:
Bool = messages.setInlineGameScore({edit_message=Bool, force=Bool, id=InputBotInlineMessageID, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v91/methods/messages_setTyping.md b/old_docs/API_docs_v91/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v91/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v91/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v91/methods/messages_startBot.md b/old_docs/API_docs_v91/methods/messages_startBot.md
index aa2b2d00..4bf12aa6 100644
--- a/old_docs/API_docs_v91/methods/messages_startBot.md
+++ b/old_docs/API_docs_v91/methods/messages_startBot.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = messages.startBot({bot=InputUser, peer=InputPeer, start_param='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INVALID|This is not a valid bot|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|START_PARAM_EMPTY|The start parameter is empty|
-|START_PARAM_INVALID|Start parameter invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INVALID|This is not a valid bot|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|START_PARAM_EMPTY|The start parameter is empty|
+|400|START_PARAM_INVALID|Start parameter invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_toggleChatAdmins.md b/old_docs/API_docs_v91/methods/messages_toggleChatAdmins.md
index 7851806d..8ea6e65e 100644
--- a/old_docs/API_docs_v91/methods/messages_toggleChatAdmins.md
+++ b/old_docs/API_docs_v91/methods/messages_toggleChatAdmins.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.toggleChatAdmins({chat_id=InputPeer, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v91/methods/messages_toggleDialogPin.md b/old_docs/API_docs_v91/methods/messages_toggleDialogPin.md
index 22c6d15d..ff46ef21 100644
--- a/old_docs/API_docs_v91/methods/messages_toggleDialogPin.md
+++ b/old_docs/API_docs_v91/methods/messages_toggleDialogPin.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.toggleDialogPin({pinned=Bool, peer=InputDialogPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_uninstallStickerSet.md b/old_docs/API_docs_v91/methods/messages_uninstallStickerSet.md
index 59abc510..6b7a2006 100644
--- a/old_docs/API_docs_v91/methods/messages_uninstallStickerSet.md
+++ b/old_docs/API_docs_v91/methods/messages_uninstallStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.uninstallStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v91/methods/messages_uploadMedia.md b/old_docs/API_docs_v91/methods/messages_uploadMedia.md
index afc806fe..09fc074c 100644
--- a/old_docs/API_docs_v91/methods/messages_uploadMedia.md
+++ b/old_docs/API_docs_v91/methods/messages_uploadMedia.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
MessageMedia = messages.uploadMedia({peer=InputPeer, media=InputMedia, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v91/methods/payments_getPaymentForm.md b/old_docs/API_docs_v91/methods/payments_getPaymentForm.md
index e8e04f37..4c28121f 100644
--- a/old_docs/API_docs_v91/methods/payments_getPaymentForm.md
+++ b/old_docs/API_docs_v91/methods/payments_getPaymentForm.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentForm = payments.getPaymentForm({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v91/methods/payments_getPaymentReceipt.md b/old_docs/API_docs_v91/methods/payments_getPaymentReceipt.md
index acb1c209..0e2f76a8 100644
--- a/old_docs/API_docs_v91/methods/payments_getPaymentReceipt.md
+++ b/old_docs/API_docs_v91/methods/payments_getPaymentReceipt.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentReceipt = payments.getPaymentReceipt({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v91/methods/payments_sendPaymentForm.md b/old_docs/API_docs_v91/methods/payments_sendPaymentForm.md
index b8fa905d..1910ede8 100644
--- a/old_docs/API_docs_v91/methods/payments_sendPaymentForm.md
+++ b/old_docs/API_docs_v91/methods/payments_sendPaymentForm.md
@@ -45,10 +45,10 @@ Or, if you're into Lua:
payments_PaymentResult = payments.sendPaymentForm({msg_id=int, requested_info_id='string', shipping_option_id='string', credentials=InputPaymentCredentials, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v91/methods/payments_validateRequestedInfo.md b/old_docs/API_docs_v91/methods/payments_validateRequestedInfo.md
index 3b9da7e6..f18e1660 100644
--- a/old_docs/API_docs_v91/methods/payments_validateRequestedInfo.md
+++ b/old_docs/API_docs_v91/methods/payments_validateRequestedInfo.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
payments_ValidatedRequestedInfo = payments.validateRequestedInfo({save=Bool, msg_id=int, info=PaymentRequestedInfo, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v91/methods/phone_acceptCall.md b/old_docs/API_docs_v91/methods/phone_acceptCall.md
index b75ac65b..f5c58f01 100644
--- a/old_docs/API_docs_v91/methods/phone_acceptCall.md
+++ b/old_docs/API_docs_v91/methods/phone_acceptCall.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->acceptCall(['peer' => InputPhoneCall, 'g_b' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.acceptCall({peer=InputPhoneCall, g_b='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
diff --git a/old_docs/API_docs_v91/methods/phone_confirmCall.md b/old_docs/API_docs_v91/methods/phone_confirmCall.md
index 1a75563d..468307cc 100644
--- a/old_docs/API_docs_v91/methods/phone_confirmCall.md
+++ b/old_docs/API_docs_v91/methods/phone_confirmCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->confirmCall(['peer' => InputPhoneCall, 'g_a' => 'bytes', 'key_fingerprint' => long, 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.confirmCall({peer=InputPhoneCall, g_a='bytes', key_fingerprint=long, protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v91/methods/phone_discardCall.md b/old_docs/API_docs_v91/methods/phone_discardCall.md
index e50456eb..ffaa18ea 100644
--- a/old_docs/API_docs_v91/methods/phone_discardCall.md
+++ b/old_docs/API_docs_v91/methods/phone_discardCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|duration|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|reason|[PhoneCallDiscardReason](../types/PhoneCallDiscardReason.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|connection\_id|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [Updates](../types/Updates.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Updates = $MadelineProto->phone->discardCall(['peer' => InputPhoneCall, 'duration' => int, 'reason' => PhoneCallDiscardReason, 'connection_id' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Updates = phone.discardCall({peer=InputPhoneCall, duration=int, reason=PhoneCallDiscardReason, connection_id=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v91/methods/phone_receivedCall.md b/old_docs/API_docs_v91/methods/phone_receivedCall.md
index c43bc8ac..6091424b 100644
--- a/old_docs/API_docs_v91/methods/phone_receivedCall.md
+++ b/old_docs/API_docs_v91/methods/phone_receivedCall.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Bool = phone.receivedCall({peer=InputPhoneCall, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_ALREADY_DECLINED|The call was already declined|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v91/methods/phone_requestCall.md b/old_docs/API_docs_v91/methods/phone_requestCall.md
index 9b8df564..c8e828f2 100644
--- a/old_docs/API_docs_v91/methods/phone_requestCall.md
+++ b/old_docs/API_docs_v91/methods/phone_requestCall.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Optional|
+|g\_a\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->requestCall(['user_id' => InputUser, 'g_a_hash' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.requestCall({user_id=InputUser, g_a_hash='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
+|400|PARTICIPANT_VERSION_OUTDATED|The other participant does not use an up to date telegram client with support for calls|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|403|USER_IS_BLOCKED|You were blocked by this user|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v91/methods/phone_saveCallDebug.md b/old_docs/API_docs_v91/methods/phone_saveCallDebug.md
index 8acbc353..1e793c05 100644
--- a/old_docs/API_docs_v91/methods/phone_saveCallDebug.md
+++ b/old_docs/API_docs_v91/methods/phone_saveCallDebug.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = phone.saveCallDebug({peer=InputPhoneCall, debug=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
-|DATA_JSON_INVALID|The provided JSON data is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|DATA_JSON_INVALID|The provided JSON data is invalid|
diff --git a/old_docs/API_docs_v91/methods/phone_setCallRating.md b/old_docs/API_docs_v91/methods/phone_setCallRating.md
index 9bc6bdd0..9daed209 100644
--- a/old_docs/API_docs_v91/methods/phone_setCallRating.md
+++ b/old_docs/API_docs_v91/methods/phone_setCallRating.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Updates = phone.setCallRating({peer=InputPhoneCall, rating=int, comment='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v91/methods/photos_getUserPhotos.md b/old_docs/API_docs_v91/methods/photos_getUserPhotos.md
index 57f5772b..a01f3180 100644
--- a/old_docs/API_docs_v91/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v91/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v91/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v91/methods/photos_updateProfilePhoto.md
index cca2fe30..f7c91ec6 100644
--- a/old_docs/API_docs_v91/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v91/methods/photos_updateProfilePhoto.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v91/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v91/methods/photos_uploadProfilePhoto.md
index 457bade8..badde2de 100644
--- a/old_docs/API_docs_v91/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v91/methods/photos_uploadProfilePhoto.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v91/methods/stickers_addStickerToSet.md b/old_docs/API_docs_v91/methods/stickers_addStickerToSet.md
index 78e8437c..b1fa2aad 100644
--- a/old_docs/API_docs_v91/methods/stickers_addStickerToSet.md
+++ b/old_docs/API_docs_v91/methods/stickers_addStickerToSet.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.addStickerToSet({stickerset=InputStickerSet, sticker=InputStickerSetItem, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v91/methods/stickers_changeStickerPosition.md b/old_docs/API_docs_v91/methods/stickers_changeStickerPosition.md
index cddc1cbb..98dde67e 100644
--- a/old_docs/API_docs_v91/methods/stickers_changeStickerPosition.md
+++ b/old_docs/API_docs_v91/methods/stickers_changeStickerPosition.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.changeStickerPosition({sticker=InputDocument, position=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/old_docs/API_docs_v91/methods/stickers_createStickerSet.md b/old_docs/API_docs_v91/methods/stickers_createStickerSet.md
index 41e4ad11..741e0ad6 100644
--- a/old_docs/API_docs_v91/methods/stickers_createStickerSet.md
+++ b/old_docs/API_docs_v91/methods/stickers_createStickerSet.md
@@ -46,18 +46,18 @@ Or, if you're into Lua:
messages_StickerSet = stickers.createStickerSet({masks=Bool, user_id=InputUser, title='string', short_name='string', stickers={InputStickerSetItem}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|PACK_SHORT_NAME_INVALID|Short pack name invalid|
-|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|STICKER_EMOJI_INVALID|Sticker emoji invalid|
-|STICKER_FILE_INVALID|Sticker file invalid|
-|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
-|STICKERS_EMPTY|No sticker provided|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|PACK_SHORT_NAME_INVALID|Short pack name invalid|
+|400|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|STICKER_EMOJI_INVALID|Sticker emoji invalid|
+|400|STICKER_FILE_INVALID|Sticker file invalid|
+|400|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
+|400|STICKERS_EMPTY|No sticker provided|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v91/methods/stickers_removeStickerFromSet.md b/old_docs/API_docs_v91/methods/stickers_removeStickerFromSet.md
index ea4621f2..d1fc4339 100644
--- a/old_docs/API_docs_v91/methods/stickers_removeStickerFromSet.md
+++ b/old_docs/API_docs_v91/methods/stickers_removeStickerFromSet.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.removeStickerFromSet({sticker=InputDocument, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/old_docs/API_docs_v91/methods/updates_getChannelDifference.md b/old_docs/API_docs_v91/methods/updates_getChannelDifference.md
index 6fa79529..9735c14a 100644
--- a/old_docs/API_docs_v91/methods/updates_getChannelDifference.md
+++ b/old_docs/API_docs_v91/methods/updates_getChannelDifference.md
@@ -7,8 +7,56 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|force|[Bool](../types/Bool.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|filter|[ChannelMessagesFilter](../types/ChannelMessagesFilter.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_ChannelDifference](../types/updates_ChannelDifference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_ChannelDifference = $MadelineProto->updates->getChannelDifference(['force' => Bool, 'channel' => InputChannel, 'filter' => ChannelMessagesFilter, 'pts' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_ChannelDifference = updates.getChannelDifference({force=Bool, channel=InputChannel, filter=ChannelMessagesFilter, pts=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|400|RANGES_INVALID|Invalid range provided|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v91/methods/updates_getDifference.md b/old_docs/API_docs_v91/methods/updates_getDifference.md
index 33e7d7f2..bcfac4e2 100644
--- a/old_docs/API_docs_v91/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v91/methods/updates_getDifference.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|pts\_total\_limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'pts_total_limit' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, pts_total_limit=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v91/methods/updates_getState.md b/old_docs/API_docs_v91/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v91/methods/updates_getState.md
+++ b/old_docs/API_docs_v91/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v91/methods/upload_getCdnFile.md b/old_docs/API_docs_v91/methods/upload_getCdnFile.md
index 5e5b3f43..be9ad311 100644
--- a/old_docs/API_docs_v91/methods/upload_getCdnFile.md
+++ b/old_docs/API_docs_v91/methods/upload_getCdnFile.md
@@ -7,8 +7,40 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_CdnFile](../types/upload_CdnFile.md)
+
+### Can bots use this method: **NO**
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_CdnFile = $MadelineProto->upload->getCdnFile(['file_token' => 'bytes', 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_CdnFile = upload.getCdnFile({file_token='bytes', offset=int, limit=int, })
+```
+
diff --git a/old_docs/API_docs_v91/methods/upload_getCdnFileHashes.md b/old_docs/API_docs_v91/methods/upload_getCdnFileHashes.md
index ea6a8e75..d957578e 100644
--- a/old_docs/API_docs_v91/methods/upload_getCdnFileHashes.md
+++ b/old_docs/API_docs_v91/methods/upload_getCdnFileHashes.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->getCdnFileHashes(['file_token' => 'bytes', 'offset' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.getCdnFileHashes({file_token='bytes', offset=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/old_docs/API_docs_v91/methods/upload_getFile.md b/old_docs/API_docs_v91/methods/upload_getFile.md
index c72e6090..d8b433d6 100644
--- a/old_docs/API_docs_v91/methods/upload_getFile.md
+++ b/old_docs/API_docs_v91/methods/upload_getFile.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v91/methods/upload_getFileHashes.md b/old_docs/API_docs_v91/methods/upload_getFileHashes.md
index debeb60d..e03dd5c5 100644
--- a/old_docs/API_docs_v91/methods/upload_getFileHashes.md
+++ b/old_docs/API_docs_v91/methods/upload_getFileHashes.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+Get file hashes
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | The file | Yes|
+|offset|[int](../types/int.md) | Offset | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->getFileHashes(['location' => InputFileLocation, 'offset' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.getFileHashes({location=InputFileLocation, offset=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LOCATION_INVALID|The provided location is invalid|
diff --git a/old_docs/API_docs_v91/methods/upload_getWebFile.md b/old_docs/API_docs_v91/methods/upload_getWebFile.md
index 21179a66..7b63f96c 100644
--- a/old_docs/API_docs_v91/methods/upload_getWebFile.md
+++ b/old_docs/API_docs_v91/methods/upload_getWebFile.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
upload_WebFile = upload.getWebFile({location=InputWebFileLocation, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LOCATION_INVALID|The provided location is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LOCATION_INVALID|The provided location is invalid|
diff --git a/old_docs/API_docs_v91/methods/upload_reuploadCdnFile.md b/old_docs/API_docs_v91/methods/upload_reuploadCdnFile.md
index cc20d5e3..f531557c 100644
--- a/old_docs/API_docs_v91/methods/upload_reuploadCdnFile.md
+++ b/old_docs/API_docs_v91/methods/upload_reuploadCdnFile.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|request\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->reuploadCdnFile(['file_token' => 'bytes', 'request_token' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.reuploadCdnFile({file_token='bytes', request_token='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/old_docs/API_docs_v91/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v91/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v91/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v91/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v91/methods/upload_saveFilePart.md b/old_docs/API_docs_v91/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v91/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v91/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v91/methods/users_getFullUser.md b/old_docs/API_docs_v91/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v91/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v91/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v91/methods/users_getUsers.md b/old_docs/API_docs_v91/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v91/methods/users_getUsers.md
+++ b/old_docs/API_docs_v91/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v91/methods/users_setSecureValueErrors.md b/old_docs/API_docs_v91/methods/users_setSecureValueErrors.md
index 40e398ab..661137fb 100644
--- a/old_docs/API_docs_v91/methods/users_setSecureValueErrors.md
+++ b/old_docs/API_docs_v91/methods/users_setSecureValueErrors.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = users.setSecureValueErrors({id=InputUser, errors={SecureValueError}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v95/methods/README.md b/old_docs/API_docs_v95/methods/README.md
index be00bc2e..a161eab6 100644
--- a/old_docs/API_docs_v95/methods/README.md
+++ b/old_docs/API_docs_v95/methods/README.md
@@ -30,513 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Accept telegram passport authorization: account.acceptAuthorization
-
-* Accept telegram's TOS: help.acceptTermsOfService
-
-* Add a sticker set: messages.installStickerSet
-
-* Add a sticker to favorites: messages.faveSticker
-
-* Add a sticker to recent stickers: messages.saveRecentSticker
-
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add phone number as contact: contacts.importContacts
-
-* Add sticker to stickerset: stickers.addStickerToSet
-
-* Add users to channel/supergroup: channels.inviteToChannel
-
-* Block a user: contacts.block
-
-* Bots only: get telegram passport authorization form: account.getAuthorizationForm
-
-* Bots only: send payment form: payments.sendPaymentForm
-
-* Bots only: set precheckout results: messages.setBotPrecheckoutResults
-
-* Bots only: set shipping results: messages.setBotShippingResults
-
-* Bots only: set the callback answer (after a button was clicked): messages.setBotCallbackAnswer
-
-* Bots only: set the results of an inline query: messages.setInlineBotResults
-
-* Call inline bot: messages.getInlineBotResults
-
-* Cancel password recovery email: account.cancelPasswordEmail
-
-* Change notification settings: account.updateNotifySettings
-
-* Change sticker position in photo: stickers.changeStickerPosition
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if about to edit a message or a media caption: messages.getMessageEditData
-
-* Check if an invitation link is valid: messages.checkChatInvite
-
-* Check if this username is available: account.checkUsername
-
-* Check if this username is free and can be assigned to a channel/supergroup: channels.checkUsername
-
-* Clear all drafts: messages.clearAllDrafts
-
-* Clear all recent stickers: messages.clearRecentStickers
-
-* Clear saved payments info: payments.clearSavedInfo
-
-* Confirm password recovery using email: account.confirmPasswordEmail
-
-* Confirm this phone number is associated to this account, obtain phone_code_hash from sendConfirmPhoneCode: account.confirmPhone
-
-* Contact signup notification setting value: account.getContactSignUpNotification
-
-* Convert chat to supergroup: messages.migrateChat
-
-* Create a chat (not supergroup): messages.createChat
-
-* Create channel/supergroup: channels.createChannel
-
-* Create stickerset: stickers.createStickerSet
-
-* Delete a certain session: account.resetAuthorization
-
-* Delete a certain telegram web login authorization: account.resetWebAuthorization
-
-* Delete a channel/supergroup: channels.deleteChannel
-
-* Delete a contact: contacts.deleteContact
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete all messages of a user in a channel/supergroup: channels.deleteUserHistory
-
-* Delete all temporary authorization keys except the ones provided: auth.dropTempAuthKeys
-
-* Delete channel/supergroup messages: channels.deleteMessages
-
-* Delete chat history: messages.deleteHistory
-
-* Delete contacts by phones: contacts.deleteByPhones
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete secure telegram passport value: account.deleteSecureValue
-
-* Delete the history of a supergroup/channel: channels.deleteHistory
-
-* Delete this account: account.deleteAccount
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Download a file through telegram: upload.getWebFile
-
-* Edit a message: messages.editMessage
-
-* Edit a sent inline message: messages.editInlineBotMessage
-
-* Edit admin permissions of a user in a channel/supergroup: channels.editAdmin
-
-* Edit admin permissions: messages.editChatAdmin
-
-* Edit chat info: messages.editChatAbout
-
-* Edit default rights of chat: messages.editChatDefaultBannedRights
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the photo of a supergroup/channel: channels.editPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Edit the title of a supergroup/channel: channels.editTitle
-
-* Edit user info: help.editUserInfo
-
-* Enable or disable hidden history for new channel/supergroup users: channels.togglePreHistoryHidden
-
-* Export chat invite : messages.exportChatInvite
-
-* Find a sticker set: messages.searchStickerSets
-
-* Finish account exporting session: account.finishTakeoutSession
-
-* Forward messages: messages.forwardMessages
-
-* Get CDN configuration: help.getCdnConfig
-
-* Get a stickerset: messages.getStickerSet
-
-* Get account TTL: account.getAccountTTL
-
-* Get admin log of a channel/supergroup: channels.getAdminLog
-
-* Get all archived stickers: messages.getArchivedStickers
-
-* Get all channels you left: channels.getLeftChannels
-
-* Get all chats (not supergroups or channels): messages.getAllChats
-
-* Get all contacts: contacts.getContacts
-
-* Get all logged-in authorizations: account.getAuthorizations
-
-* Get all message drafts: messages.getAllDrafts
-
-* Get all secure telegram passport values: account.getAllSecureValues
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get all supergroups/channels where you're admin: channels.getAdminedPublicChannels
-
-* Get and increase message views: messages.getMessagesViews
-
-* Get app config: help.getAppConfig
-
-* Get available languages: langpack.getLanguages
-
-* Get blocked users: contacts.getBlocked
-
-* Get call configuration: phone.getCallConfig
-
-* Get channel/supergroup messages: channels.getMessages
-
-* Get channel/supergroup participants (you should use `$MadelineProto->get_pwr_chat($id)` instead): channels.getParticipants
-
-* Get chats in common with a user: messages.getCommonChats
-
-* Get contacts by IDs: contacts.getContactIDs
-
-* Get deep link info: help.getDeepLinkInfo
-
-* Get dialog info of peers: messages.getPeerDialogs
-
-* Get dialogs marked as unread manually: messages.getDialogUnreadMarks
-
-* Get document by SHA256 hash: messages.getDocumentByHash
-
-* Get favorite stickers: messages.getFavedStickers
-
-* Get featured stickers: messages.getFeaturedStickers
-
-* Get high scores of a game sent in an inline message: messages.getInlineGameHighScores
-
-* Get high scores of a game: messages.getGameHighScores
-
-* Get info about a certain channel/supergroup participant: channels.getParticipant
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about multiple channels/supergroups: channels.getChannels
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get information about the current proxy: help.getProxyData
-
-* Get invitation text: help.getInviteText
-
-* Get language pack strings: langpack.getStrings
-
-* Get language pack updates: langpack.getDifference
-
-* Get language pack: langpack.getLangPack
-
-* Get language: langpack.getLanguage
-
-* Get masks: messages.getMaskStickers
-
-* Get message ranges to fetch: messages.getSplitRanges
-
-* Get messages: messages.getMessages
-
-* Get most used chats: contacts.getTopPeers
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification exceptions: account.getNotifyExceptions
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get online users: messages.getOnlines
-
-* Get passport config: help.getPassportConfig
-
-* Get payment form: payments.getPaymentForm
-
-* Get payment receipt: payments.getPaymentReceipt
-
-* Get pinned dialogs: messages.getPinnedDialogs
-
-* Get poll results: messages.getPollResults
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get recent locations: messages.getRecentLocations
-
-* Get recent stickers: messages.getRecentStickers
-
-* Get recent t.me URLs: help.getRecentMeUrls
-
-* Get saved contacts: contacts.getSaved
-
-* Get saved gifs: messages.getSavedGifs
-
-* Get saved payments info: payments.getSavedInfo
-
-* Get secure value for telegram passport: account.getSecureValue
-
-* Get server configuration: help.getConfig
-
-* Get stats URL: messages.getStatsURL
-
-* Get stickers attachable to images: messages.getAttachedStickers
-
-* Get stickers: messages.getStickers
-
-* Get support name: help.getSupportName
-
-* Get telegram web login authorizations: account.getWebAuthorizations
-
-* Get temporary password for buying products through bots: account.getTmpPassword
-
-* Get the callback answer of a bot (after clicking a button): messages.getBotCallbackAnswer
-
-* Get the changelog of this app: help.getAppChangelog
-
-* Get the current password: account.getPassword
-
-* Get the link of a message in a channel: channels.exportMessageLink
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Get the settings of apeer: messages.getPeerSettings
-
-* Get unread mentions: messages.getUnreadMentions
-
-* Get updated TOS: help.getTermsOfServiceUpdate
-
-* Get user info: help.getUserInfo
-
-* Get wallpaper info: account.getWallPaper
-
-* Get webpage preview: messages.getWebPage
-
-* Get webpage preview: messages.getWebPagePreview
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Global message search: messages.searchGlobal
-
-* Hide report spam popup: messages.hideReportSpam
-
-* Import chat invite: messages.importChatInvite
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Install wallpaper: account.installWallPaper
-
-* Invalidate sent phone code: auth.cancelCode
-
-* Invoke method from takeout session: invokeWithTakeout
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invoke with messages range: invokeWithMessagesRange
-
-* Invoke with method without returning updates in the socket: invokeWithoutUpdates
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Join a channel/supergroup: channels.joinChannel
-
-* Kick or ban a user from a channel/supergroup: channels.editBanned
-
-* Leave a channel/supergroup: channels.leaveChannel
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark channel/supergroup history as read: channels.readHistory
-
-* Mark channel/supergroup messages as read: channels.readMessageContents
-
-* Mark dialog as unread : messages.markDialogUnread
-
-* Mark mentions as read: messages.readMentions
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Mark new featured stickers as read: messages.readFeaturedStickers
-
-* Notify server that you received a call (server will refuse all incoming calls until the current call is over): phone.receivedCall
-
-* Pin or unpin dialog: messages.toggleDialogPin
-
-* Register device for push notifications: account.registerDevice
-
-* Remove a sticker set: messages.uninstallStickerSet
-
-* Remove sticker from stickerset: stickers.removeStickerFromSet
-
-* Reorder pinned dialogs: messages.reorderPinnedDialogs
-
-* Reorder sticker sets: messages.reorderStickerSets
-
-* Report a message in a supergroup/channel for spam: channels.reportSpam
-
-* Report a message: messages.report
-
-* Report a peer for spam: messages.reportSpam
-
-* Report for spam a secret chat: messages.reportEncryptedSpam
-
-* Report for spam: account.reportPeer
-
-* Resend password recovery email: account.resendPasswordEmail
-
-* Resend the SMS verification code: auth.resendCode
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Reset all telegram web login authorizations: account.resetWebAuthorizations
-
-* Reset saved contacts: contacts.resetSaved
-
-* Reset top peer rating for a certain category/peer: contacts.resetTopPeerRating
-
-* Reset wallpapers: account.resetWallPapers
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Save a GIF: messages.saveGif
-
-* Save a message draft: messages.saveDraft
-
-* Save call debugging info: phone.saveCallDebug
-
-* Save telegram passport secure value: account.saveSecureValue
-
-* Save wallpaper: account.saveWallPaper
-
-* Search contacts: contacts.search
-
-* Search gifs: messages.searchGifs
-
-* Search peers or messages: messages.search
-
-* Send a custom request to the bot API: bots.sendCustomRequest
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send an album: messages.sendMultiMedia
-
-* Send an email to recover the 2FA password: auth.requestPasswordRecovery
-
-* Send confirmation phone code: account.sendConfirmPhoneCode
-
-* Send email verification code: account.sendVerifyEmailCode
-
-* Send inline bot result obtained with messages.getInlineBotResults to the chat: messages.sendInlineBotResult
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send phone verification code: account.sendVerifyPhoneCode
-
-* Send screenshot notification: messages.sendScreenshotNotification
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Send vote: messages.sendVote
-
-* Send webhook request via bot API: bots.answerWebhookJSONQuery
-
-* Set account TTL: account.setAccountTTL
-
-* Set contact sign up notification: account.setContactSignUpNotification
-
-* Set phone call rating: phone.setCallRating
-
-* Set privacy settings: account.setPrivacy
-
-* Set secure value error for telegram passport: users.setSecureValueErrors
-
-* Set the game score of an inline message: messages.setInlineGameScore
-
-* Set the game score: messages.setGameScore
-
-* Set the supergroup/channel stickerpack: channels.setStickers
-
-* Set the update status of webhook: help.setBotUpdatesStatus
-
-* Start a bot: messages.startBot
-
-* Start account exporting session: account.initTakeoutSession
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Toggle channel signatures: channels.toggleSignatures
-
-* Toggle top peers: contacts.toggleTopPeers
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update pinned message: messages.updatePinnedMessage
-
-* Update profile info: account.updateProfile
-
-* Update the username of a supergroup/channel: channels.updateUsername
-
-* Update this user's username: account.updateUsername
-
-* Upload a file without sending it to anyone: messages.uploadMedia
-
-* Upload a secret chat file without sending it to anyone: messages.uploadEncryptedFile
-
-* Upload profile photo: photos.uploadProfilePhoto
-
-* Upload wallpaper: account.uploadWallPaper
-
-* Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
-
-* Validate requested payment info: payments.validateRequestedInfo
-
-* Verify email address: account.verifyEmail
-
-* Verify phone number: account.verifyPhone
-
diff --git a/old_docs/API_docs_v95/methods/account_changePhone.md b/old_docs/API_docs_v95/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/old_docs/API_docs_v95/methods/account_changePhone.md
+++ b/old_docs/API_docs_v95/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v95/methods/account_checkUsername.md b/old_docs/API_docs_v95/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v95/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v95/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v95/methods/account_confirmPhone.md b/old_docs/API_docs_v95/methods/account_confirmPhone.md
index b730c2dc..c114cd20 100644
--- a/old_docs/API_docs_v95/methods/account_confirmPhone.md
+++ b/old_docs/API_docs_v95/methods/account_confirmPhone.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = account.confirmPhone({phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_HASH_INVALID|Code hash invalid|
-|PHONE_CODE_EMPTY|phone_code is missing|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_HASH_INVALID|Code hash invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
diff --git a/old_docs/API_docs_v95/methods/account_getNotifySettings.md b/old_docs/API_docs_v95/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v95/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v95/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v95/methods/account_getPasswordSettings.md b/old_docs/API_docs_v95/methods/account_getPasswordSettings.md
index 8ebb78ee..e41c6b67 100644
--- a/old_docs/API_docs_v95/methods/account_getPasswordSettings.md
+++ b/old_docs/API_docs_v95/methods/account_getPasswordSettings.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+Get the current 2FA settings
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password|[InputCheckPasswordSRP](../types/InputCheckPasswordSRP.md) | You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [account\_PasswordSettings](../types/account_PasswordSettings.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$account_PasswordSettings = $MadelineProto->account->getPasswordSettings(['password' => InputCheckPasswordSRP, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+account_PasswordSettings = account.getPasswordSettings({password=InputCheckPasswordSRP, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v95/methods/account_getPrivacy.md b/old_docs/API_docs_v95/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/old_docs/API_docs_v95/methods/account_getPrivacy.md
+++ b/old_docs/API_docs_v95/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v95/methods/account_getTmpPassword.md b/old_docs/API_docs_v95/methods/account_getTmpPassword.md
index 3a29d97a..0ae4061f 100644
--- a/old_docs/API_docs_v95/methods/account_getTmpPassword.md
+++ b/old_docs/API_docs_v95/methods/account_getTmpPassword.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
account_TmpPassword = account.getTmpPassword({password=InputCheckPasswordSRP, period=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_HASH_INVALID|The provided password hash is invalid|
-|TMP_PASSWORD_DISABLED|The temporary password is disabled|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
+|400|TMP_PASSWORD_DISABLED|The temporary password is disabled|
diff --git a/old_docs/API_docs_v95/methods/account_registerDevice.md b/old_docs/API_docs_v95/methods/account_registerDevice.md
index 7c34f6c4..a8e8c2a2 100644
--- a/old_docs/API_docs_v95/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v95/methods/account_registerDevice.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({token_type=int, token='string', app_sandbox=Bool, secret='bytes', other_uids={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v95/methods/account_reportPeer.md b/old_docs/API_docs_v95/methods/account_reportPeer.md
index a203c900..87b080eb 100644
--- a/old_docs/API_docs_v95/methods/account_reportPeer.md
+++ b/old_docs/API_docs_v95/methods/account_reportPeer.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.reportPeer({peer=InputPeer, reason=ReportReason, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v95/methods/account_resetAuthorization.md b/old_docs/API_docs_v95/methods/account_resetAuthorization.md
index c950992c..e8e8ecc4 100644
--- a/old_docs/API_docs_v95/methods/account_resetAuthorization.md
+++ b/old_docs/API_docs_v95/methods/account_resetAuthorization.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.resetAuthorization({hash=long, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v95/methods/account_sendChangePhoneCode.md b/old_docs/API_docs_v95/methods/account_sendChangePhoneCode.md
index 3a0923f8..26375a94 100644
--- a/old_docs/API_docs_v95/methods/account_sendChangePhoneCode.md
+++ b/old_docs/API_docs_v95/methods/account_sendChangePhoneCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendChangePhoneCode({phone_number='string', settings=CodeSettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v95/methods/account_sendConfirmPhoneCode.md b/old_docs/API_docs_v95/methods/account_sendConfirmPhoneCode.md
index 02896f84..426b70b8 100644
--- a/old_docs/API_docs_v95/methods/account_sendConfirmPhoneCode.md
+++ b/old_docs/API_docs_v95/methods/account_sendConfirmPhoneCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendConfirmPhoneCode({hash='string', settings=CodeSettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v95/methods/account_setAccountTTL.md b/old_docs/API_docs_v95/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/old_docs/API_docs_v95/methods/account_setAccountTTL.md
+++ b/old_docs/API_docs_v95/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/old_docs/API_docs_v95/methods/account_setPrivacy.md b/old_docs/API_docs_v95/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/old_docs/API_docs_v95/methods/account_setPrivacy.md
+++ b/old_docs/API_docs_v95/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v95/methods/account_unregisterDevice.md b/old_docs/API_docs_v95/methods/account_unregisterDevice.md
index 13d11e88..e39f0811 100644
--- a/old_docs/API_docs_v95/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v95/methods/account_unregisterDevice.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', other_uids={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v95/methods/account_updateNotifySettings.md b/old_docs/API_docs_v95/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v95/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v95/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v95/methods/account_updatePasswordSettings.md b/old_docs/API_docs_v95/methods/account_updatePasswordSettings.md
index 80f27228..7afb81ea 100644
--- a/old_docs/API_docs_v95/methods/account_updatePasswordSettings.md
+++ b/old_docs/API_docs_v95/methods/account_updatePasswordSettings.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password|[InputCheckPasswordSRP](../types/InputCheckPasswordSRP.md) | You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|new\_settings|[account\_PasswordInputSettings](../types/account_PasswordInputSettings.md) | New 2FA settings | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->account->updatePasswordSettings(['password' => InputCheckPasswordSRP, 'new_settings' => account_PasswordInputSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = account.updatePasswordSettings({password=InputCheckPasswordSRP, new_settings=account_PasswordInputSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EMAIL_UNCONFIRMED|Email unconfirmed|
+|400|EMAIL_UNCONFIRMED_X|The provided email isn't confirmed, X is the length of the verification code that was just sent to the email.|
+|400|NEW_SALT_INVALID|The new salt is invalid|
+|400|NEW_SETTINGS_INVALID|The new settings are invalid|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v95/methods/account_updateProfile.md b/old_docs/API_docs_v95/methods/account_updateProfile.md
index af5b6a0f..0d74c5e5 100644
--- a/old_docs/API_docs_v95/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v95/methods/account_updateProfile.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v95/methods/account_updateStatus.md b/old_docs/API_docs_v95/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v95/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v95/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v95/methods/account_updateUsername.md b/old_docs/API_docs_v95/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v95/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v95/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v95/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v95/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v95/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v95/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v95/methods/auth_cancelCode.md b/old_docs/API_docs_v95/methods/auth_cancelCode.md
index fcbd7713..a69e0118 100644
--- a/old_docs/API_docs_v95/methods/auth_cancelCode.md
+++ b/old_docs/API_docs_v95/methods/auth_cancelCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = auth.cancelCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v95/methods/auth_checkPassword.md b/old_docs/API_docs_v95/methods/auth_checkPassword.md
index 8d76c483..ad2a88a2 100644
--- a/old_docs/API_docs_v95/methods/auth_checkPassword.md
+++ b/old_docs/API_docs_v95/methods/auth_checkPassword.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password|[InputCheckPasswordSRP](../types/InputCheckPasswordSRP.md) | You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->checkPassword(['password' => InputCheckPasswordSRP, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.checkPassword({password=InputCheckPasswordSRP, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v95/methods/auth_exportAuthorization.md b/old_docs/API_docs_v95/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v95/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v95/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v95/methods/auth_importAuthorization.md b/old_docs/API_docs_v95/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v95/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v95/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v95/methods/auth_importBotAuthorization.md b/old_docs/API_docs_v95/methods/auth_importBotAuthorization.md
index 1a98c1b9..98a2f8ca 100644
--- a/old_docs/API_docs_v95/methods/auth_importBotAuthorization.md
+++ b/old_docs/API_docs_v95/methods/auth_importBotAuthorization.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|api\_id|[int](../types/int.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_hash|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|bot\_auth\_token|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importBotAuthorization(['api_id' => int, 'api_hash' => 'string', 'bot_auth_token' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importBotAuthorization({api_id=int, api_hash='string', bot_auth_token='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ACCESS_TOKEN_EXPIRED|Access token expired|
+|400|ACCESS_TOKEN_INVALID|Access token invalid|
+|400|API_ID_INVALID|API ID invalid|
diff --git a/old_docs/API_docs_v95/methods/auth_logOut.md b/old_docs/API_docs_v95/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v95/methods/auth_logOut.md
+++ b/old_docs/API_docs_v95/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v95/methods/auth_recoverPassword.md b/old_docs/API_docs_v95/methods/auth_recoverPassword.md
index 83ff5aed..d4bad9c5 100644
--- a/old_docs/API_docs_v95/methods/auth_recoverPassword.md
+++ b/old_docs/API_docs_v95/methods/auth_recoverPassword.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
auth_Authorization = auth.recoverPassword({code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_EMPTY|The provided code is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_EMPTY|The provided code is empty|
diff --git a/old_docs/API_docs_v95/methods/auth_requestPasswordRecovery.md b/old_docs/API_docs_v95/methods/auth_requestPasswordRecovery.md
index 1864bbb0..b6ad57ba 100644
--- a/old_docs/API_docs_v95/methods/auth_requestPasswordRecovery.md
+++ b/old_docs/API_docs_v95/methods/auth_requestPasswordRecovery.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
auth_PasswordRecovery = auth.requestPasswordRecovery({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_EMPTY|The provided password is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_EMPTY|The provided password is empty|
diff --git a/old_docs/API_docs_v95/methods/auth_resendCode.md b/old_docs/API_docs_v95/methods/auth_resendCode.md
index ff7868ea..ec730d75 100644
--- a/old_docs/API_docs_v95/methods/auth_resendCode.md
+++ b/old_docs/API_docs_v95/methods/auth_resendCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = auth.resendCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v95/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v95/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v95/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v95/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v95/methods/auth_sendCode.md b/old_docs/API_docs_v95/methods/auth_sendCode.md
index 9afebb55..83dfd500 100644
--- a/old_docs/API_docs_v95/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v95/methods/auth_sendCode.md
@@ -7,8 +7,58 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+|settings|[CodeSettings](../types/CodeSettings.md) | You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['phone_number' => 'string', 'api_id' => int, 'api_hash' => 'string', 'settings' => CodeSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({phone_number='string', api_id=int, api_hash='string', settings=CodeSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v95/methods/auth_signIn.md b/old_docs/API_docs_v95/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v95/methods/auth_signIn.md
+++ b/old_docs/API_docs_v95/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v95/methods/auth_signUp.md b/old_docs/API_docs_v95/methods/auth_signUp.md
index 15960145..31154486 100644
--- a/old_docs/API_docs_v95/methods/auth_signUp.md
+++ b/old_docs/API_docs_v95/methods/auth_signUp.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', phone_code='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v95/methods/bots_answerWebhookJSONQuery.md b/old_docs/API_docs_v95/methods/bots_answerWebhookJSONQuery.md
index ae0fa6d9..f2233514 100644
--- a/old_docs/API_docs_v95/methods/bots_answerWebhookJSONQuery.md
+++ b/old_docs/API_docs_v95/methods/bots_answerWebhookJSONQuery.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = bots.answerWebhookJSONQuery({query_id=long, data=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v95/methods/bots_sendCustomRequest.md b/old_docs/API_docs_v95/methods/bots_sendCustomRequest.md
index c1fd8183..8a6a2df5 100644
--- a/old_docs/API_docs_v95/methods/bots_sendCustomRequest.md
+++ b/old_docs/API_docs_v95/methods/bots_sendCustomRequest.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
DataJSON = bots.sendCustomRequest({custom_method='string', params=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v95/methods/channels_checkUsername.md b/old_docs/API_docs_v95/methods/channels_checkUsername.md
index 483a2f6f..52365d34 100644
--- a/old_docs/API_docs_v95/methods/channels_checkUsername.md
+++ b/old_docs/API_docs_v95/methods/channels_checkUsername.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Bool = channels.checkUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v95/methods/channels_createChannel.md b/old_docs/API_docs_v95/methods/channels_createChannel.md
index b924e6a6..ecaee0ef 100644
--- a/old_docs/API_docs_v95/methods/channels_createChannel.md
+++ b/old_docs/API_docs_v95/methods/channels_createChannel.md
@@ -45,12 +45,12 @@ Or, if you're into Lua:
Updates = channels.createChannel({broadcast=Bool, megagroup=Bool, title='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_TITLE_EMPTY|No chat title provided|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
+|406|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v95/methods/channels_deleteChannel.md b/old_docs/API_docs_v95/methods/channels_deleteChannel.md
index 53a9c23d..1b8d2d48 100644
--- a/old_docs/API_docs_v95/methods/channels_deleteChannel.md
+++ b/old_docs/API_docs_v95/methods/channels_deleteChannel.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Updates = channels.deleteChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v95/methods/channels_deleteMessages.md b/old_docs/API_docs_v95/methods/channels_deleteMessages.md
index f76a9ad1..463ebad0 100644
--- a/old_docs/API_docs_v95/methods/channels_deleteMessages.md
+++ b/old_docs/API_docs_v95/methods/channels_deleteMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_AffectedMessages = channels.deleteMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v95/methods/channels_deleteUserHistory.md b/old_docs/API_docs_v95/methods/channels_deleteUserHistory.md
index 0a4e7d82..33905a7e 100644
--- a/old_docs/API_docs_v95/methods/channels_deleteUserHistory.md
+++ b/old_docs/API_docs_v95/methods/channels_deleteUserHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedHistory = channels.deleteUserHistory({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v95/methods/channels_editAdmin.md b/old_docs/API_docs_v95/methods/channels_editAdmin.md
index 2ea10cf0..5f311714 100644
--- a/old_docs/API_docs_v95/methods/channels_editAdmin.md
+++ b/old_docs/API_docs_v95/methods/channels_editAdmin.md
@@ -44,19 +44,19 @@ Or, if you're into Lua:
Updates = channels.editAdmin({channel=InputChannel, user_id=InputUser, admin_rights=ChatAdminRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ADMINS_TOO_MUCH|There are too many admins|
-|BOT_CHANNELS_NA|Bots can't edit admin privileges|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
-|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ADMINS_TOO_MUCH|There are too many admins|
+|400|BOT_CHANNELS_NA|Bots can't edit admin privileges|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
+|403|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v95/methods/channels_editBanned.md b/old_docs/API_docs_v95/methods/channels_editBanned.md
index 8b08ed22..b9f1b58a 100644
--- a/old_docs/API_docs_v95/methods/channels_editBanned.md
+++ b/old_docs/API_docs_v95/methods/channels_editBanned.md
@@ -44,14 +44,14 @@ Or, if you're into Lua:
Updates = channels.editBanned({channel=InputChannel, user_id=InputUser, banned_rights=ChatBannedRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ADMIN_INVALID|You're not an admin|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ADMIN_INVALID|You're not an admin|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v95/methods/channels_editPhoto.md b/old_docs/API_docs_v95/methods/channels_editPhoto.md
index bec0ba48..caef32d5 100644
--- a/old_docs/API_docs_v95/methods/channels_editPhoto.md
+++ b/old_docs/API_docs_v95/methods/channels_editPhoto.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editPhoto({channel=InputChannel, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|PHOTO_INVALID|Photo invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|PHOTO_INVALID|Photo invalid|
diff --git a/old_docs/API_docs_v95/methods/channels_editTitle.md b/old_docs/API_docs_v95/methods/channels_editTitle.md
index b5efeb39..d7cb33da 100644
--- a/old_docs/API_docs_v95/methods/channels_editTitle.md
+++ b/old_docs/API_docs_v95/methods/channels_editTitle.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editTitle({channel=InputChannel, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v95/methods/channels_exportMessageLink.md b/old_docs/API_docs_v95/methods/channels_exportMessageLink.md
index 5dea54a7..fc2f248b 100644
--- a/old_docs/API_docs_v95/methods/channels_exportMessageLink.md
+++ b/old_docs/API_docs_v95/methods/channels_exportMessageLink.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
ExportedMessageLink = channels.exportMessageLink({channel=InputChannel, id=int, grouped=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v95/methods/channels_getAdminLog.md b/old_docs/API_docs_v95/methods/channels_getAdminLog.md
index 377c7320..adb87748 100644
--- a/old_docs/API_docs_v95/methods/channels_getAdminLog.md
+++ b/old_docs/API_docs_v95/methods/channels_getAdminLog.md
@@ -48,12 +48,12 @@ Or, if you're into Lua:
channels_AdminLogResults = channels.getAdminLog({channel=InputChannel, q='string', events_filter=ChannelAdminLogEventsFilter, admins={InputUser}, max_id=long, min_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v95/methods/channels_getChannels.md b/old_docs/API_docs_v95/methods/channels_getChannels.md
index 78d50641..95d7a188 100644
--- a/old_docs/API_docs_v95/methods/channels_getChannels.md
+++ b/old_docs/API_docs_v95/methods/channels_getChannels.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = channels.getChannels({id={InputChannel}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v95/methods/channels_getFullChannel.md b/old_docs/API_docs_v95/methods/channels_getFullChannel.md
index 45a8ec72..ebd53de4 100644
--- a/old_docs/API_docs_v95/methods/channels_getFullChannel.md
+++ b/old_docs/API_docs_v95/methods/channels_getFullChannel.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->channels->getFullChannel(['channel' => InputChannel, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = channels.getFullChannel({channel=InputChannel, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v95/methods/channels_getLeftChannels.md b/old_docs/API_docs_v95/methods/channels_getLeftChannels.md
index 2d256964..fac7ae07 100644
--- a/old_docs/API_docs_v95/methods/channels_getLeftChannels.md
+++ b/old_docs/API_docs_v95/methods/channels_getLeftChannels.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_Chats = channels.getLeftChannels({offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TAKEOUT_REQUIRED|A takeout session has to be initialized, first|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|TAKEOUT_REQUIRED|A takeout session has to be initialized, first|
diff --git a/old_docs/API_docs_v95/methods/channels_getMessages.md b/old_docs/API_docs_v95/methods/channels_getMessages.md
index 90cf5a47..f1ae0a4d 100644
--- a/old_docs/API_docs_v95/methods/channels_getMessages.md
+++ b/old_docs/API_docs_v95/methods/channels_getMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_Messages = channels.getMessages({channel=InputChannel, id={InputMessage}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
diff --git a/old_docs/API_docs_v95/methods/channels_getParticipant.md b/old_docs/API_docs_v95/methods/channels_getParticipant.md
index 6633114f..808156fd 100644
--- a/old_docs/API_docs_v95/methods/channels_getParticipant.md
+++ b/old_docs/API_docs_v95/methods/channels_getParticipant.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
channels_ChannelParticipant = channels.getParticipant({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v95/methods/channels_getParticipants.md b/old_docs/API_docs_v95/methods/channels_getParticipants.md
index 5ff242e6..fb7a39df 100644
--- a/old_docs/API_docs_v95/methods/channels_getParticipants.md
+++ b/old_docs/API_docs_v95/methods/channels_getParticipants.md
@@ -46,14 +46,14 @@ Or, if you're into Lua:
channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, filter=ChannelParticipantsFilter, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v95/methods/channels_inviteToChannel.md b/old_docs/API_docs_v95/methods/channels_inviteToChannel.md
index f7093f13..d8c5e88a 100644
--- a/old_docs/API_docs_v95/methods/channels_inviteToChannel.md
+++ b/old_docs/API_docs_v95/methods/channels_inviteToChannel.md
@@ -43,25 +43,25 @@ Or, if you're into Lua:
Updates = channels.inviteToChannel({channel=InputChannel, users={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
-|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_BLOCKED|User blocked|
-|USER_BOT|Bots can only be admins in channels.|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_KICKED|This user was kicked from this supergroup/channel|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
+|400|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_BLOCKED|User blocked|
+|400|USER_BOT|Bots can only be admins in channels.|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_KICKED|This user was kicked from this supergroup/channel|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v95/methods/channels_joinChannel.md b/old_docs/API_docs_v95/methods/channels_joinChannel.md
index b056031a..a4a7c177 100644
--- a/old_docs/API_docs_v95/methods/channels_joinChannel.md
+++ b/old_docs/API_docs_v95/methods/channels_joinChannel.md
@@ -42,15 +42,15 @@ Or, if you're into Lua:
Updates = channels.joinChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
diff --git a/old_docs/API_docs_v95/methods/channels_leaveChannel.md b/old_docs/API_docs_v95/methods/channels_leaveChannel.md
index fdea13ba..6538d443 100644
--- a/old_docs/API_docs_v95/methods/channels_leaveChannel.md
+++ b/old_docs/API_docs_v95/methods/channels_leaveChannel.md
@@ -42,14 +42,14 @@ Or, if you're into Lua:
Updates = channels.leaveChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
-|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
diff --git a/old_docs/API_docs_v95/methods/channels_readHistory.md b/old_docs/API_docs_v95/methods/channels_readHistory.md
index 93dc075f..3532dae0 100644
--- a/old_docs/API_docs_v95/methods/channels_readHistory.md
+++ b/old_docs/API_docs_v95/methods/channels_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readHistory({channel=InputChannel, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v95/methods/channels_readMessageContents.md b/old_docs/API_docs_v95/methods/channels_readMessageContents.md
index 80ddf2b0..8cd8c620 100644
--- a/old_docs/API_docs_v95/methods/channels_readMessageContents.md
+++ b/old_docs/API_docs_v95/methods/channels_readMessageContents.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readMessageContents({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v95/methods/channels_reportSpam.md b/old_docs/API_docs_v95/methods/channels_reportSpam.md
index db80676a..7e273cc5 100644
--- a/old_docs/API_docs_v95/methods/channels_reportSpam.md
+++ b/old_docs/API_docs_v95/methods/channels_reportSpam.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
Bool = channels.reportSpam({channel=InputChannel, user_id=InputUser, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
diff --git a/old_docs/API_docs_v95/methods/channels_setStickers.md b/old_docs/API_docs_v95/methods/channels_setStickers.md
index 10cd68bf..c9b95527 100644
--- a/old_docs/API_docs_v95/methods/channels_setStickers.md
+++ b/old_docs/API_docs_v95/methods/channels_setStickers.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.setStickers({channel=InputChannel, stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PARTICIPANTS_TOO_FEW|Not enough participants|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PARTICIPANTS_TOO_FEW|Not enough participants|
diff --git a/old_docs/API_docs_v95/methods/channels_toggleSignatures.md b/old_docs/API_docs_v95/methods/channels_toggleSignatures.md
index cdfc0fda..f8624946 100644
--- a/old_docs/API_docs_v95/methods/channels_toggleSignatures.md
+++ b/old_docs/API_docs_v95/methods/channels_toggleSignatures.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = channels.toggleSignatures({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v95/methods/channels_updateUsername.md b/old_docs/API_docs_v95/methods/channels_updateUsername.md
index 677712f9..48d250e6 100644
--- a/old_docs/API_docs_v95/methods/channels_updateUsername.md
+++ b/old_docs/API_docs_v95/methods/channels_updateUsername.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Bool = channels.updateUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_OCCUPIED|The provided username is already occupied|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
diff --git a/old_docs/API_docs_v95/methods/contacts_block.md b/old_docs/API_docs_v95/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v95/methods/contacts_block.md
+++ b/old_docs/API_docs_v95/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v95/methods/contacts_deleteContact.md b/old_docs/API_docs_v95/methods/contacts_deleteContact.md
index ba9569e4..a9321d64 100644
--- a/old_docs/API_docs_v95/methods/contacts_deleteContact.md
+++ b/old_docs/API_docs_v95/methods/contacts_deleteContact.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
contacts_Link = contacts.deleteContact({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v95/methods/contacts_deleteContacts.md b/old_docs/API_docs_v95/methods/contacts_deleteContacts.md
index bfc91fdd..3c8e90f0 100644
--- a/old_docs/API_docs_v95/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v95/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v95/methods/contacts_getStatuses.md b/old_docs/API_docs_v95/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v95/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v95/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v95/methods/contacts_getTopPeers.md b/old_docs/API_docs_v95/methods/contacts_getTopPeers.md
index 4dc13d08..9ad9ab01 100644
--- a/old_docs/API_docs_v95/methods/contacts_getTopPeers.md
+++ b/old_docs/API_docs_v95/methods/contacts_getTopPeers.md
@@ -50,10 +50,10 @@ Or, if you're into Lua:
contacts_TopPeers = contacts.getTopPeers({correspondents=Bool, bots_pm=Bool, bots_inline=Bool, phone_calls=Bool, groups=Bool, channels=Bool, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TYPES_EMPTY|No top peer type was provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TYPES_EMPTY|No top peer type was provided|
diff --git a/old_docs/API_docs_v95/methods/contacts_resetTopPeerRating.md b/old_docs/API_docs_v95/methods/contacts_resetTopPeerRating.md
index 43cf1685..787be177 100644
--- a/old_docs/API_docs_v95/methods/contacts_resetTopPeerRating.md
+++ b/old_docs/API_docs_v95/methods/contacts_resetTopPeerRating.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = contacts.resetTopPeerRating({category=TopPeerCategory, peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v95/methods/contacts_resolveUsername.md b/old_docs/API_docs_v95/methods/contacts_resolveUsername.md
index fab56bb1..68f709db 100644
--- a/old_docs/API_docs_v95/methods/contacts_resolveUsername.md
+++ b/old_docs/API_docs_v95/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [contacts\_ResolvedPeer](../types/contacts_ResolvedPeer.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$contacts_ResolvedPeer = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+contacts_ResolvedPeer = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v95/methods/contacts_search.md b/old_docs/API_docs_v95/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v95/methods/contacts_search.md
+++ b/old_docs/API_docs_v95/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v95/methods/contacts_unblock.md b/old_docs/API_docs_v95/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v95/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v95/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v95/methods/help_getCdnConfig.md b/old_docs/API_docs_v95/methods/help_getCdnConfig.md
index 9e047a1d..ba526365 100644
--- a/old_docs/API_docs_v95/methods/help_getCdnConfig.md
+++ b/old_docs/API_docs_v95/methods/help_getCdnConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
CdnConfig = help.getCdnConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v95/methods/help_getConfig.md b/old_docs/API_docs_v95/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v95/methods/help_getConfig.md
+++ b/old_docs/API_docs_v95/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v95/methods/initConnection.md b/old_docs/API_docs_v95/methods/initConnection.md
index 69d29401..5c4bfab9 100644
--- a/old_docs/API_docs_v95/methods/initConnection.md
+++ b/old_docs/API_docs_v95/methods/initConnection.md
@@ -50,11 +50,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', system_lang_code='string', lang_pack='string', lang_code='string', proxy=InputClientProxy, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v95/methods/invokeWithLayer.md b/old_docs/API_docs_v95/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/old_docs/API_docs_v95/methods/invokeWithLayer.md
+++ b/old_docs/API_docs_v95/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v95/methods/langpack_getDifference.md b/old_docs/API_docs_v95/methods/langpack_getDifference.md
index 436846b6..68e16858 100644
--- a/old_docs/API_docs_v95/methods/langpack_getDifference.md
+++ b/old_docs/API_docs_v95/methods/langpack_getDifference.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getDifference({lang_code='string', from_version=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v95/methods/langpack_getLangPack.md b/old_docs/API_docs_v95/methods/langpack_getLangPack.md
index 55d30529..d2280670 100644
--- a/old_docs/API_docs_v95/methods/langpack_getLangPack.md
+++ b/old_docs/API_docs_v95/methods/langpack_getLangPack.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getLangPack({lang_pack='string', lang_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v95/methods/langpack_getLanguages.md b/old_docs/API_docs_v95/methods/langpack_getLanguages.md
index d4b9734e..686a50f5 100644
--- a/old_docs/API_docs_v95/methods/langpack_getLanguages.md
+++ b/old_docs/API_docs_v95/methods/langpack_getLanguages.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Vector_of_LangPackLanguage = langpack.getLanguages({lang_pack='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v95/methods/langpack_getStrings.md b/old_docs/API_docs_v95/methods/langpack_getStrings.md
index 65f65dfc..f0463eed 100644
--- a/old_docs/API_docs_v95/methods/langpack_getStrings.md
+++ b/old_docs/API_docs_v95/methods/langpack_getStrings.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Vector_of_LangPackString = langpack.getStrings({lang_pack='string', lang_code='string', keys={'string'}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_acceptEncryption.md b/old_docs/API_docs_v95/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v95/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v95/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v95/methods/messages_addChatUser.md b/old_docs/API_docs_v95/methods/messages_addChatUser.md
index bc0d6253..b5e164b2 100644
--- a/old_docs/API_docs_v95/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v95/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
Updates = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v95/methods/messages_checkChatInvite.md b/old_docs/API_docs_v95/methods/messages_checkChatInvite.md
index de28b09b..0d13d55e 100644
--- a/old_docs/API_docs_v95/methods/messages_checkChatInvite.md
+++ b/old_docs/API_docs_v95/methods/messages_checkChatInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ChatInvite = messages.checkChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_createChat.md b/old_docs/API_docs_v95/methods/messages_createChat.md
index 8f6e9672..b2623f1d 100644
--- a/old_docs/API_docs_v95/methods/messages_createChat.md
+++ b/old_docs/API_docs_v95/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v95/methods/messages_deleteChatUser.md b/old_docs/API_docs_v95/methods/messages_deleteChatUser.md
index 63529571..11b9b220 100644
--- a/old_docs/API_docs_v95/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v95/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v95/methods/messages_deleteHistory.md b/old_docs/API_docs_v95/methods/messages_deleteHistory.md
index 2ade177e..338c2cdf 100644
--- a/old_docs/API_docs_v95/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v95/methods/messages_deleteHistory.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({just_clear=Bool, peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_deleteMessages.md b/old_docs/API_docs_v95/methods/messages_deleteMessages.md
index 4c65080a..41517dd0 100644
--- a/old_docs/API_docs_v95/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v95/methods/messages_deleteMessages.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.deleteMessages({revoke=Bool, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v95/methods/messages_discardEncryption.md b/old_docs/API_docs_v95/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v95/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v95/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_editChatAbout.md b/old_docs/API_docs_v95/methods/messages_editChatAbout.md
index 6c562c12..05fff24f 100644
--- a/old_docs/API_docs_v95/methods/messages_editChatAbout.md
+++ b/old_docs/API_docs_v95/methods/messages_editChatAbout.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.editChatAbout({peer=InputPeer, about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_editChatAdmin.md b/old_docs/API_docs_v95/methods/messages_editChatAdmin.md
index 2b4dc94c..6f6c1376 100644
--- a/old_docs/API_docs_v95/methods/messages_editChatAdmin.md
+++ b/old_docs/API_docs_v95/methods/messages_editChatAdmin.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.editChatAdmin({chat_id=InputPeer, user_id=InputUser, is_admin=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_editChatDefaultBannedRights.md b/old_docs/API_docs_v95/methods/messages_editChatDefaultBannedRights.md
index 30e7836e..a8e075eb 100644
--- a/old_docs/API_docs_v95/methods/messages_editChatDefaultBannedRights.md
+++ b/old_docs/API_docs_v95/methods/messages_editChatDefaultBannedRights.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatDefaultBannedRights({peer=InputPeer, banned_rights=ChatBannedRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BANNED_RIGHTS_INVALID|You provided some invalid flags in the banned rights|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BANNED_RIGHTS_INVALID|You provided some invalid flags in the banned rights|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_editChatPhoto.md b/old_docs/API_docs_v95/methods/messages_editChatPhoto.md
index 2a82c232..a21a03b9 100644
--- a/old_docs/API_docs_v95/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v95/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Updates = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_editChatTitle.md b/old_docs/API_docs_v95/methods/messages_editChatTitle.md
index 2c338ad6..72f78741 100644
--- a/old_docs/API_docs_v95/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v95/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v95/methods/messages_editInlineBotMessage.md b/old_docs/API_docs_v95/methods/messages_editInlineBotMessage.md
index 67313f15..5f7a31c9 100644
--- a/old_docs/API_docs_v95/methods/messages_editInlineBotMessage.md
+++ b/old_docs/API_docs_v95/methods/messages_editInlineBotMessage.md
@@ -96,11 +96,11 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
diff --git a/old_docs/API_docs_v95/methods/messages_editMessage.md b/old_docs/API_docs_v95/methods/messages_editMessage.md
index 720f4285..d394d1aa 100644
--- a/old_docs/API_docs_v95/methods/messages_editMessage.md
+++ b/old_docs/API_docs_v95/methods/messages_editMessage.md
@@ -97,20 +97,20 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v95/methods/messages_exportChatInvite.md b/old_docs/API_docs_v95/methods/messages_exportChatInvite.md
index 9028d4cd..c78d7fb9 100644
--- a/old_docs/API_docs_v95/methods/messages_exportChatInvite.md
+++ b/old_docs/API_docs_v95/methods/messages_exportChatInvite.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
ExportedChatInvite = messages.exportChatInvite({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_faveSticker.md b/old_docs/API_docs_v95/methods/messages_faveSticker.md
index a8b1ab56..9f9f423d 100644
--- a/old_docs/API_docs_v95/methods/messages_faveSticker.md
+++ b/old_docs/API_docs_v95/methods/messages_faveSticker.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.faveSticker({id=InputDocument, unfave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_forwardMessages.md b/old_docs/API_docs_v95/methods/messages_forwardMessages.md
index d2453d05..743fa7a6 100644
--- a/old_docs/API_docs_v95/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v95/methods/messages_forwardMessages.md
@@ -48,29 +48,29 @@ Or, if you're into Lua:
Updates = messages.forwardMessages({silent=Bool, background=Bool, with_my_score=Bool, grouped=Bool, from_peer=InputPeer, id={int}, to_peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v95/methods/messages_getBotCallbackAnswer.md b/old_docs/API_docs_v95/methods/messages_getBotCallbackAnswer.md
index f97fa5b0..3f8cc23b 100644
--- a/old_docs/API_docs_v95/methods/messages_getBotCallbackAnswer.md
+++ b/old_docs/API_docs_v95/methods/messages_getBotCallbackAnswer.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
messages_BotCallbackAnswer = messages.getBotCallbackAnswer({game=Bool, peer=InputPeer, msg_id=int, data='bytes', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v95/methods/messages_getChats.md b/old_docs/API_docs_v95/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/old_docs/API_docs_v95/methods/messages_getChats.md
+++ b/old_docs/API_docs_v95/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_getCommonChats.md b/old_docs/API_docs_v95/methods/messages_getCommonChats.md
index 9470a0ee..cff23c3f 100644
--- a/old_docs/API_docs_v95/methods/messages_getCommonChats.md
+++ b/old_docs/API_docs_v95/methods/messages_getCommonChats.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_Chats = messages.getCommonChats({user_id=InputUser, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_getDhConfig.md b/old_docs/API_docs_v95/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v95/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v95/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_getDialogs.md b/old_docs/API_docs_v95/methods/messages_getDialogs.md
index 5d5a75ff..da3efe36 100644
--- a/old_docs/API_docs_v95/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v95/methods/messages_getDialogs.md
@@ -47,13 +47,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({exclude_pinned=Bool, offset_date=int, offset_id=int, offset_peer=InputPeer, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v95/methods/messages_getDocumentByHash.md b/old_docs/API_docs_v95/methods/messages_getDocumentByHash.md
index 73a235d5..06469c52 100644
--- a/old_docs/API_docs_v95/methods/messages_getDocumentByHash.md
+++ b/old_docs/API_docs_v95/methods/messages_getDocumentByHash.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Document = messages.getDocumentByHash({sha256='bytes', size=int, mime_type='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_getFullChat.md b/old_docs/API_docs_v95/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v95/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v95/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_getGameHighScores.md b/old_docs/API_docs_v95/methods/messages_getGameHighScores.md
index 249e1d09..5c484bbb 100644
--- a/old_docs/API_docs_v95/methods/messages_getGameHighScores.md
+++ b/old_docs/API_docs_v95/methods/messages_getGameHighScores.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
messages_HighScores = messages.getGameHighScores({peer=InputPeer, id=int, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v95/methods/messages_getHistory.md b/old_docs/API_docs_v95/methods/messages_getHistory.md
index d623a61e..a0389d7b 100644
--- a/old_docs/API_docs_v95/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v95/methods/messages_getHistory.md
@@ -49,16 +49,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset_id=int, offset_date=int, add_offset=int, limit=int, max_id=int, min_id=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v95/methods/messages_getInlineBotResults.md b/old_docs/API_docs_v95/methods/messages_getInlineBotResults.md
index 1efcb412..17d678b7 100644
--- a/old_docs/API_docs_v95/methods/messages_getInlineBotResults.md
+++ b/old_docs/API_docs_v95/methods/messages_getInlineBotResults.md
@@ -46,13 +46,13 @@ Or, if you're into Lua:
messages_BotResults = messages.getInlineBotResults({bot=InputUser, peer=InputPeer, geo_point=InputGeoPoint, query='string', offset='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
-|BOT_INVALID|This is not a valid bot|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
+|400|BOT_INVALID|This is not a valid bot|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v95/methods/messages_getInlineGameHighScores.md b/old_docs/API_docs_v95/methods/messages_getInlineGameHighScores.md
index e68c6db8..ac33b6b8 100644
--- a/old_docs/API_docs_v95/methods/messages_getInlineGameHighScores.md
+++ b/old_docs/API_docs_v95/methods/messages_getInlineGameHighScores.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_HighScores = messages.getInlineGameHighScores({id=InputBotInlineMessageID, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v95/methods/messages_getMessageEditData.md b/old_docs/API_docs_v95/methods/messages_getMessageEditData.md
index 7f1b7164..b907d78c 100644
--- a/old_docs/API_docs_v95/methods/messages_getMessageEditData.md
+++ b/old_docs/API_docs_v95/methods/messages_getMessageEditData.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_MessageEditData = messages.getMessageEditData({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v95/methods/messages_getMessagesViews.md b/old_docs/API_docs_v95/methods/messages_getMessagesViews.md
index 3d490315..143e568c 100644
--- a/old_docs/API_docs_v95/methods/messages_getMessagesViews.md
+++ b/old_docs/API_docs_v95/methods/messages_getMessagesViews.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
Vector_of_int = messages.getMessagesViews({peer=InputPeer, id={int}, increment=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_getPeerDialogs.md b/old_docs/API_docs_v95/methods/messages_getPeerDialogs.md
index 02eb9b43..17e0d11e 100644
--- a/old_docs/API_docs_v95/methods/messages_getPeerDialogs.md
+++ b/old_docs/API_docs_v95/methods/messages_getPeerDialogs.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPeerDialogs({peers={InputDialogPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_getPeerSettings.md b/old_docs/API_docs_v95/methods/messages_getPeerSettings.md
index 26dafb9b..69032ff5 100644
--- a/old_docs/API_docs_v95/methods/messages_getPeerSettings.md
+++ b/old_docs/API_docs_v95/methods/messages_getPeerSettings.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
PeerSettings = messages.getPeerSettings({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_getPinnedDialogs.md b/old_docs/API_docs_v95/methods/messages_getPinnedDialogs.md
index 828d622e..f106098d 100644
--- a/old_docs/API_docs_v95/methods/messages_getPinnedDialogs.md
+++ b/old_docs/API_docs_v95/methods/messages_getPinnedDialogs.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPinnedDialogs({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FOLDER_ID_INVALID|Invalid folder ID|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FOLDER_ID_INVALID|Invalid folder ID|
diff --git a/old_docs/API_docs_v95/methods/messages_getStatsURL.md b/old_docs/API_docs_v95/methods/messages_getStatsURL.md
index fb11ac89..87cbb88f 100644
--- a/old_docs/API_docs_v95/methods/messages_getStatsURL.md
+++ b/old_docs/API_docs_v95/methods/messages_getStatsURL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
StatsURL = messages.getStatsURL({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_getStickerSet.md b/old_docs/API_docs_v95/methods/messages_getStickerSet.md
index 57bce84d..487316cc 100644
--- a/old_docs/API_docs_v95/methods/messages_getStickerSet.md
+++ b/old_docs/API_docs_v95/methods/messages_getStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_StickerSet = messages.getStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_getUnreadMentions.md b/old_docs/API_docs_v95/methods/messages_getUnreadMentions.md
index 1fa1f269..923229eb 100644
--- a/old_docs/API_docs_v95/methods/messages_getUnreadMentions.md
+++ b/old_docs/API_docs_v95/methods/messages_getUnreadMentions.md
@@ -47,10 +47,10 @@ Or, if you're into Lua:
messages_Messages = messages.getUnreadMentions({peer=InputPeer, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_getWebPage.md b/old_docs/API_docs_v95/methods/messages_getWebPage.md
index ce51ff41..63ef5e93 100644
--- a/old_docs/API_docs_v95/methods/messages_getWebPage.md
+++ b/old_docs/API_docs_v95/methods/messages_getWebPage.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
WebPage = messages.getWebPage({url='string', hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|WC_CONVERT_URL_INVALID|WC convert URL invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|WC_CONVERT_URL_INVALID|WC convert URL invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_hideReportSpam.md b/old_docs/API_docs_v95/methods/messages_hideReportSpam.md
index c4bf7399..57756d2e 100644
--- a/old_docs/API_docs_v95/methods/messages_hideReportSpam.md
+++ b/old_docs/API_docs_v95/methods/messages_hideReportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.hideReportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_importChatInvite.md b/old_docs/API_docs_v95/methods/messages_importChatInvite.md
index 12120867..101b4b19 100644
--- a/old_docs/API_docs_v95/methods/messages_importChatInvite.md
+++ b/old_docs/API_docs_v95/methods/messages_importChatInvite.md
@@ -42,16 +42,16 @@ Or, if you're into Lua:
Updates = messages.importChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v95/methods/messages_installStickerSet.md b/old_docs/API_docs_v95/methods/messages_installStickerSet.md
index 21a57a85..67f2aca0 100644
--- a/old_docs/API_docs_v95/methods/messages_installStickerSet.md
+++ b/old_docs/API_docs_v95/methods/messages_installStickerSet.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_StickerSetInstallResult = messages.installStickerSet({stickerset=InputStickerSet, archived=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_migrateChat.md b/old_docs/API_docs_v95/methods/messages_migrateChat.md
index a72f4c11..ee4010eb 100644
--- a/old_docs/API_docs_v95/methods/messages_migrateChat.md
+++ b/old_docs/API_docs_v95/methods/messages_migrateChat.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
Updates = messages.migrateChat({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v95/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v95/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v95/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v95/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v95/methods/messages_readHistory.md b/old_docs/API_docs_v95/methods/messages_readHistory.md
index 2ad5cd09..a7f0eca7 100644
--- a/old_docs/API_docs_v95/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v95/methods/messages_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.readHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v95/methods/messages_receivedQueue.md b/old_docs/API_docs_v95/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v95/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v95/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v95/methods/messages_reorderPinnedDialogs.md b/old_docs/API_docs_v95/methods/messages_reorderPinnedDialogs.md
index 49aaca93..2452409a 100644
--- a/old_docs/API_docs_v95/methods/messages_reorderPinnedDialogs.md
+++ b/old_docs/API_docs_v95/methods/messages_reorderPinnedDialogs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.reorderPinnedDialogs({force=Bool, order={InputDialogPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_reportEncryptedSpam.md b/old_docs/API_docs_v95/methods/messages_reportEncryptedSpam.md
index 9b1e868b..aeac27ef 100644
--- a/old_docs/API_docs_v95/methods/messages_reportEncryptedSpam.md
+++ b/old_docs/API_docs_v95/methods/messages_reportEncryptedSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportEncryptedSpam({peer=InputEncryptedChat, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_reportSpam.md b/old_docs/API_docs_v95/methods/messages_reportSpam.md
index e92fba13..dc256e55 100644
--- a/old_docs/API_docs_v95/methods/messages_reportSpam.md
+++ b/old_docs/API_docs_v95/methods/messages_reportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_requestEncryption.md b/old_docs/API_docs_v95/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v95/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v95/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_saveDraft.md b/old_docs/API_docs_v95/methods/messages_saveDraft.md
index 791ce234..ea6d407e 100644
--- a/old_docs/API_docs_v95/methods/messages_saveDraft.md
+++ b/old_docs/API_docs_v95/methods/messages_saveDraft.md
@@ -89,10 +89,10 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_saveGif.md b/old_docs/API_docs_v95/methods/messages_saveGif.md
index f504ff9e..010e17ec 100644
--- a/old_docs/API_docs_v95/methods/messages_saveGif.md
+++ b/old_docs/API_docs_v95/methods/messages_saveGif.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.saveGif({id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|GIF_ID_INVALID|The provided GIF ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|GIF_ID_INVALID|The provided GIF ID is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_saveRecentSticker.md b/old_docs/API_docs_v95/methods/messages_saveRecentSticker.md
index 98c74efd..072b6fe9 100644
--- a/old_docs/API_docs_v95/methods/messages_saveRecentSticker.md
+++ b/old_docs/API_docs_v95/methods/messages_saveRecentSticker.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.saveRecentSticker({attached=Bool, id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_search.md b/old_docs/API_docs_v95/methods/messages_search.md
index 83cb34c6..07529b40 100644
--- a/old_docs/API_docs_v95/methods/messages_search.md
+++ b/old_docs/API_docs_v95/methods/messages_search.md
@@ -53,16 +53,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({peer=InputPeer, q='string', from_id=InputUser, filter=MessagesFilter, min_date=int, max_date=int, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_searchGifs.md b/old_docs/API_docs_v95/methods/messages_searchGifs.md
index 7be4173b..1602d35e 100644
--- a/old_docs/API_docs_v95/methods/messages_searchGifs.md
+++ b/old_docs/API_docs_v95/methods/messages_searchGifs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_FoundGifs = messages.searchGifs({q='string', offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v95/methods/messages_searchGlobal.md b/old_docs/API_docs_v95/methods/messages_searchGlobal.md
index fb38398b..c8da163c 100644
--- a/old_docs/API_docs_v95/methods/messages_searchGlobal.md
+++ b/old_docs/API_docs_v95/methods/messages_searchGlobal.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
messages_Messages = messages.searchGlobal({q='string', offset_date=int, offset_peer=InputPeer, offset_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v95/methods/messages_sendEncrypted.md b/old_docs/API_docs_v95/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v95/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v95/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v95/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v95/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v95/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v95/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v95/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v95/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v95/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v95/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v95/methods/messages_sendInlineBotResult.md b/old_docs/API_docs_v95/methods/messages_sendInlineBotResult.md
index 96d7571a..642ba34f 100644
--- a/old_docs/API_docs_v95/methods/messages_sendInlineBotResult.md
+++ b/old_docs/API_docs_v95/methods/messages_sendInlineBotResult.md
@@ -49,15 +49,15 @@ Or, if you're into Lua:
Updates = messages.sendInlineBotResult({silent=Bool, background=Bool, clear_draft=Bool, hide_via=Bool, peer=InputPeer, reply_to_msg_id=int, query_id=long, id='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INLINE_RESULT_EXPIRED|The inline query expired|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|QUERY_ID_EMPTY|The query ID is empty|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INLINE_RESULT_EXPIRED|The inline query expired|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|QUERY_ID_EMPTY|The query ID is empty|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v95/methods/messages_sendMedia.md b/old_docs/API_docs_v95/methods/messages_sendMedia.md
index 44c604c6..a2244583 100644
--- a/old_docs/API_docs_v95/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v95/methods/messages_sendMedia.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v95/methods/messages_sendMessage.md b/old_docs/API_docs_v95/methods/messages_sendMessage.md
index 5641ebc3..e0ab305d 100644
--- a/old_docs/API_docs_v95/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v95/methods/messages_sendMessage.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v95/methods/messages_sendMultiMedia.md b/old_docs/API_docs_v95/methods/messages_sendMultiMedia.md
index 9ebdcb88..5684a6d2 100644
--- a/old_docs/API_docs_v95/methods/messages_sendMultiMedia.md
+++ b/old_docs/API_docs_v95/methods/messages_sendMultiMedia.md
@@ -47,11 +47,11 @@ Or, if you're into Lua:
Updates = messages.sendMultiMedia({silent=Bool, background=Bool, clear_draft=Bool, peer=InputPeer, reply_to_msg_id=int, multi_media={InputSingleMedia}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_sendScreenshotNotification.md b/old_docs/API_docs_v95/methods/messages_sendScreenshotNotification.md
index 3f5bb36d..4e4e40f5 100644
--- a/old_docs/API_docs_v95/methods/messages_sendScreenshotNotification.md
+++ b/old_docs/API_docs_v95/methods/messages_sendScreenshotNotification.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = messages.sendScreenshotNotification({peer=InputPeer, reply_to_msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_setBotCallbackAnswer.md b/old_docs/API_docs_v95/methods/messages_setBotCallbackAnswer.md
index ed058b4f..630ca61c 100644
--- a/old_docs/API_docs_v95/methods/messages_setBotCallbackAnswer.md
+++ b/old_docs/API_docs_v95/methods/messages_setBotCallbackAnswer.md
@@ -52,11 +52,11 @@ Bool = messages.setBotCallbackAnswer({alert=Bool, query_id=long, message='string
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|URL_INVALID|Invalid URL provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|URL_INVALID|Invalid URL provided|
diff --git a/old_docs/API_docs_v95/methods/messages_setBotPrecheckoutResults.md b/old_docs/API_docs_v95/methods/messages_setBotPrecheckoutResults.md
index cc615123..d6e0e61b 100644
--- a/old_docs/API_docs_v95/methods/messages_setBotPrecheckoutResults.md
+++ b/old_docs/API_docs_v95/methods/messages_setBotPrecheckoutResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotPrecheckoutResults({success=Bool, query_id=long, error='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ERROR_TEXT_EMPTY|The provided error message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ERROR_TEXT_EMPTY|The provided error message is empty|
diff --git a/old_docs/API_docs_v95/methods/messages_setBotShippingResults.md b/old_docs/API_docs_v95/methods/messages_setBotShippingResults.md
index f3a86f4f..adc4f64f 100644
--- a/old_docs/API_docs_v95/methods/messages_setBotShippingResults.md
+++ b/old_docs/API_docs_v95/methods/messages_setBotShippingResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotShippingResults({query_id=long, error='string', shipping_options={ShippingOption}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v95/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v95/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v95/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_setGameScore.md b/old_docs/API_docs_v95/methods/messages_setGameScore.md
index 548ee889..429b04c6 100644
--- a/old_docs/API_docs_v95/methods/messages_setGameScore.md
+++ b/old_docs/API_docs_v95/methods/messages_setGameScore.md
@@ -47,12 +47,12 @@ Or, if you're into Lua:
Updates = messages.setGameScore({edit_message=Bool, force=Bool, peer=InputPeer, id=int, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v95/methods/messages_setInlineBotResults.md b/old_docs/API_docs_v95/methods/messages_setInlineBotResults.md
index ab388e39..df4c30d4 100644
--- a/old_docs/API_docs_v95/methods/messages_setInlineBotResults.md
+++ b/old_docs/API_docs_v95/methods/messages_setInlineBotResults.md
@@ -48,23 +48,23 @@ Or, if you're into Lua:
Bool = messages.setInlineBotResults({gallery=Bool, private=Bool, query_id=long, results={InputBotInlineResult}, cache_time=int, next_offset='string', switch_pm=InlineBotSwitchPM, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ARTICLE_TITLE_EMPTY|The title of the article is empty|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|PHOTO_INVALID|Photo invalid|
-|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
-|QUERY_ID_INVALID|The query ID is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|RESULT_TYPE_INVALID|Result type invalid|
-|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
-|START_PARAM_INVALID|Start parameter invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ARTICLE_TITLE_EMPTY|The title of the article is empty|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|PHOTO_INVALID|Photo invalid|
+|400|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|RESULT_TYPE_INVALID|Result type invalid|
+|400|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
+|400|START_PARAM_INVALID|Start parameter invalid|
+|403|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v95/methods/messages_setInlineGameScore.md b/old_docs/API_docs_v95/methods/messages_setInlineGameScore.md
index 5eeb1540..62b163d5 100644
--- a/old_docs/API_docs_v95/methods/messages_setInlineGameScore.md
+++ b/old_docs/API_docs_v95/methods/messages_setInlineGameScore.md
@@ -46,11 +46,11 @@ Or, if you're into Lua:
Bool = messages.setInlineGameScore({edit_message=Bool, force=Bool, id=InputBotInlineMessageID, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v95/methods/messages_setTyping.md b/old_docs/API_docs_v95/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v95/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v95/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v95/methods/messages_startBot.md b/old_docs/API_docs_v95/methods/messages_startBot.md
index aa2b2d00..4bf12aa6 100644
--- a/old_docs/API_docs_v95/methods/messages_startBot.md
+++ b/old_docs/API_docs_v95/methods/messages_startBot.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = messages.startBot({bot=InputUser, peer=InputPeer, start_param='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INVALID|This is not a valid bot|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|START_PARAM_EMPTY|The start parameter is empty|
-|START_PARAM_INVALID|Start parameter invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INVALID|This is not a valid bot|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|START_PARAM_EMPTY|The start parameter is empty|
+|400|START_PARAM_INVALID|Start parameter invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_toggleDialogPin.md b/old_docs/API_docs_v95/methods/messages_toggleDialogPin.md
index 22c6d15d..ff46ef21 100644
--- a/old_docs/API_docs_v95/methods/messages_toggleDialogPin.md
+++ b/old_docs/API_docs_v95/methods/messages_toggleDialogPin.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.toggleDialogPin({pinned=Bool, peer=InputDialogPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_uninstallStickerSet.md b/old_docs/API_docs_v95/methods/messages_uninstallStickerSet.md
index 59abc510..6b7a2006 100644
--- a/old_docs/API_docs_v95/methods/messages_uninstallStickerSet.md
+++ b/old_docs/API_docs_v95/methods/messages_uninstallStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.uninstallStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v95/methods/messages_uploadMedia.md b/old_docs/API_docs_v95/methods/messages_uploadMedia.md
index afc806fe..09fc074c 100644
--- a/old_docs/API_docs_v95/methods/messages_uploadMedia.md
+++ b/old_docs/API_docs_v95/methods/messages_uploadMedia.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
MessageMedia = messages.uploadMedia({peer=InputPeer, media=InputMedia, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v95/methods/payments_getPaymentForm.md b/old_docs/API_docs_v95/methods/payments_getPaymentForm.md
index e8e04f37..4c28121f 100644
--- a/old_docs/API_docs_v95/methods/payments_getPaymentForm.md
+++ b/old_docs/API_docs_v95/methods/payments_getPaymentForm.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentForm = payments.getPaymentForm({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v95/methods/payments_getPaymentReceipt.md b/old_docs/API_docs_v95/methods/payments_getPaymentReceipt.md
index acb1c209..0e2f76a8 100644
--- a/old_docs/API_docs_v95/methods/payments_getPaymentReceipt.md
+++ b/old_docs/API_docs_v95/methods/payments_getPaymentReceipt.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentReceipt = payments.getPaymentReceipt({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v95/methods/payments_sendPaymentForm.md b/old_docs/API_docs_v95/methods/payments_sendPaymentForm.md
index b8fa905d..1910ede8 100644
--- a/old_docs/API_docs_v95/methods/payments_sendPaymentForm.md
+++ b/old_docs/API_docs_v95/methods/payments_sendPaymentForm.md
@@ -45,10 +45,10 @@ Or, if you're into Lua:
payments_PaymentResult = payments.sendPaymentForm({msg_id=int, requested_info_id='string', shipping_option_id='string', credentials=InputPaymentCredentials, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v95/methods/payments_validateRequestedInfo.md b/old_docs/API_docs_v95/methods/payments_validateRequestedInfo.md
index 3b9da7e6..f18e1660 100644
--- a/old_docs/API_docs_v95/methods/payments_validateRequestedInfo.md
+++ b/old_docs/API_docs_v95/methods/payments_validateRequestedInfo.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
payments_ValidatedRequestedInfo = payments.validateRequestedInfo({save=Bool, msg_id=int, info=PaymentRequestedInfo, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v95/methods/phone_acceptCall.md b/old_docs/API_docs_v95/methods/phone_acceptCall.md
index b75ac65b..f5c58f01 100644
--- a/old_docs/API_docs_v95/methods/phone_acceptCall.md
+++ b/old_docs/API_docs_v95/methods/phone_acceptCall.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->acceptCall(['peer' => InputPhoneCall, 'g_b' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.acceptCall({peer=InputPhoneCall, g_b='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
diff --git a/old_docs/API_docs_v95/methods/phone_confirmCall.md b/old_docs/API_docs_v95/methods/phone_confirmCall.md
index 1a75563d..468307cc 100644
--- a/old_docs/API_docs_v95/methods/phone_confirmCall.md
+++ b/old_docs/API_docs_v95/methods/phone_confirmCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->confirmCall(['peer' => InputPhoneCall, 'g_a' => 'bytes', 'key_fingerprint' => long, 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.confirmCall({peer=InputPhoneCall, g_a='bytes', key_fingerprint=long, protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v95/methods/phone_discardCall.md b/old_docs/API_docs_v95/methods/phone_discardCall.md
index e50456eb..ffaa18ea 100644
--- a/old_docs/API_docs_v95/methods/phone_discardCall.md
+++ b/old_docs/API_docs_v95/methods/phone_discardCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|duration|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|reason|[PhoneCallDiscardReason](../types/PhoneCallDiscardReason.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|connection\_id|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [Updates](../types/Updates.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Updates = $MadelineProto->phone->discardCall(['peer' => InputPhoneCall, 'duration' => int, 'reason' => PhoneCallDiscardReason, 'connection_id' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Updates = phone.discardCall({peer=InputPhoneCall, duration=int, reason=PhoneCallDiscardReason, connection_id=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v95/methods/phone_receivedCall.md b/old_docs/API_docs_v95/methods/phone_receivedCall.md
index c43bc8ac..6091424b 100644
--- a/old_docs/API_docs_v95/methods/phone_receivedCall.md
+++ b/old_docs/API_docs_v95/methods/phone_receivedCall.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Bool = phone.receivedCall({peer=InputPhoneCall, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_ALREADY_DECLINED|The call was already declined|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v95/methods/phone_requestCall.md b/old_docs/API_docs_v95/methods/phone_requestCall.md
index 9b8df564..c8e828f2 100644
--- a/old_docs/API_docs_v95/methods/phone_requestCall.md
+++ b/old_docs/API_docs_v95/methods/phone_requestCall.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Optional|
+|g\_a\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->requestCall(['user_id' => InputUser, 'g_a_hash' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.requestCall({user_id=InputUser, g_a_hash='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
+|400|PARTICIPANT_VERSION_OUTDATED|The other participant does not use an up to date telegram client with support for calls|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|403|USER_IS_BLOCKED|You were blocked by this user|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v95/methods/phone_saveCallDebug.md b/old_docs/API_docs_v95/methods/phone_saveCallDebug.md
index 8acbc353..1e793c05 100644
--- a/old_docs/API_docs_v95/methods/phone_saveCallDebug.md
+++ b/old_docs/API_docs_v95/methods/phone_saveCallDebug.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = phone.saveCallDebug({peer=InputPhoneCall, debug=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
-|DATA_JSON_INVALID|The provided JSON data is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|DATA_JSON_INVALID|The provided JSON data is invalid|
diff --git a/old_docs/API_docs_v95/methods/phone_setCallRating.md b/old_docs/API_docs_v95/methods/phone_setCallRating.md
index 9bc6bdd0..9daed209 100644
--- a/old_docs/API_docs_v95/methods/phone_setCallRating.md
+++ b/old_docs/API_docs_v95/methods/phone_setCallRating.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Updates = phone.setCallRating({peer=InputPhoneCall, rating=int, comment='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v95/methods/photos_getUserPhotos.md b/old_docs/API_docs_v95/methods/photos_getUserPhotos.md
index 57f5772b..a01f3180 100644
--- a/old_docs/API_docs_v95/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v95/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v95/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v95/methods/photos_updateProfilePhoto.md
index cca2fe30..f7c91ec6 100644
--- a/old_docs/API_docs_v95/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v95/methods/photos_updateProfilePhoto.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v95/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v95/methods/photos_uploadProfilePhoto.md
index 457bade8..badde2de 100644
--- a/old_docs/API_docs_v95/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v95/methods/photos_uploadProfilePhoto.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v95/methods/stickers_addStickerToSet.md b/old_docs/API_docs_v95/methods/stickers_addStickerToSet.md
index 78e8437c..b1fa2aad 100644
--- a/old_docs/API_docs_v95/methods/stickers_addStickerToSet.md
+++ b/old_docs/API_docs_v95/methods/stickers_addStickerToSet.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.addStickerToSet({stickerset=InputStickerSet, sticker=InputStickerSetItem, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v95/methods/stickers_changeStickerPosition.md b/old_docs/API_docs_v95/methods/stickers_changeStickerPosition.md
index cddc1cbb..98dde67e 100644
--- a/old_docs/API_docs_v95/methods/stickers_changeStickerPosition.md
+++ b/old_docs/API_docs_v95/methods/stickers_changeStickerPosition.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.changeStickerPosition({sticker=InputDocument, position=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/old_docs/API_docs_v95/methods/stickers_createStickerSet.md b/old_docs/API_docs_v95/methods/stickers_createStickerSet.md
index 41e4ad11..741e0ad6 100644
--- a/old_docs/API_docs_v95/methods/stickers_createStickerSet.md
+++ b/old_docs/API_docs_v95/methods/stickers_createStickerSet.md
@@ -46,18 +46,18 @@ Or, if you're into Lua:
messages_StickerSet = stickers.createStickerSet({masks=Bool, user_id=InputUser, title='string', short_name='string', stickers={InputStickerSetItem}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|PACK_SHORT_NAME_INVALID|Short pack name invalid|
-|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|STICKER_EMOJI_INVALID|Sticker emoji invalid|
-|STICKER_FILE_INVALID|Sticker file invalid|
-|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
-|STICKERS_EMPTY|No sticker provided|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|PACK_SHORT_NAME_INVALID|Short pack name invalid|
+|400|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|STICKER_EMOJI_INVALID|Sticker emoji invalid|
+|400|STICKER_FILE_INVALID|Sticker file invalid|
+|400|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
+|400|STICKERS_EMPTY|No sticker provided|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v95/methods/stickers_removeStickerFromSet.md b/old_docs/API_docs_v95/methods/stickers_removeStickerFromSet.md
index ea4621f2..d1fc4339 100644
--- a/old_docs/API_docs_v95/methods/stickers_removeStickerFromSet.md
+++ b/old_docs/API_docs_v95/methods/stickers_removeStickerFromSet.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.removeStickerFromSet({sticker=InputDocument, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/old_docs/API_docs_v95/methods/updates_getChannelDifference.md b/old_docs/API_docs_v95/methods/updates_getChannelDifference.md
index 6fa79529..9735c14a 100644
--- a/old_docs/API_docs_v95/methods/updates_getChannelDifference.md
+++ b/old_docs/API_docs_v95/methods/updates_getChannelDifference.md
@@ -7,8 +7,56 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|force|[Bool](../types/Bool.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|filter|[ChannelMessagesFilter](../types/ChannelMessagesFilter.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_ChannelDifference](../types/updates_ChannelDifference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_ChannelDifference = $MadelineProto->updates->getChannelDifference(['force' => Bool, 'channel' => InputChannel, 'filter' => ChannelMessagesFilter, 'pts' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_ChannelDifference = updates.getChannelDifference({force=Bool, channel=InputChannel, filter=ChannelMessagesFilter, pts=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|400|RANGES_INVALID|Invalid range provided|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v95/methods/updates_getDifference.md b/old_docs/API_docs_v95/methods/updates_getDifference.md
index 33e7d7f2..bcfac4e2 100644
--- a/old_docs/API_docs_v95/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v95/methods/updates_getDifference.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|pts\_total\_limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'pts_total_limit' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, pts_total_limit=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v95/methods/updates_getState.md b/old_docs/API_docs_v95/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v95/methods/updates_getState.md
+++ b/old_docs/API_docs_v95/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v95/methods/upload_getCdnFile.md b/old_docs/API_docs_v95/methods/upload_getCdnFile.md
index 5e5b3f43..be9ad311 100644
--- a/old_docs/API_docs_v95/methods/upload_getCdnFile.md
+++ b/old_docs/API_docs_v95/methods/upload_getCdnFile.md
@@ -7,8 +7,40 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_CdnFile](../types/upload_CdnFile.md)
+
+### Can bots use this method: **NO**
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_CdnFile = $MadelineProto->upload->getCdnFile(['file_token' => 'bytes', 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_CdnFile = upload.getCdnFile({file_token='bytes', offset=int, limit=int, })
+```
+
diff --git a/old_docs/API_docs_v95/methods/upload_getCdnFileHashes.md b/old_docs/API_docs_v95/methods/upload_getCdnFileHashes.md
index ea6a8e75..d957578e 100644
--- a/old_docs/API_docs_v95/methods/upload_getCdnFileHashes.md
+++ b/old_docs/API_docs_v95/methods/upload_getCdnFileHashes.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->getCdnFileHashes(['file_token' => 'bytes', 'offset' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.getCdnFileHashes({file_token='bytes', offset=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/old_docs/API_docs_v95/methods/upload_getFile.md b/old_docs/API_docs_v95/methods/upload_getFile.md
index c72e6090..d8b433d6 100644
--- a/old_docs/API_docs_v95/methods/upload_getFile.md
+++ b/old_docs/API_docs_v95/methods/upload_getFile.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v95/methods/upload_getFileHashes.md b/old_docs/API_docs_v95/methods/upload_getFileHashes.md
index debeb60d..e03dd5c5 100644
--- a/old_docs/API_docs_v95/methods/upload_getFileHashes.md
+++ b/old_docs/API_docs_v95/methods/upload_getFileHashes.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+Get file hashes
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | The file | Yes|
+|offset|[int](../types/int.md) | Offset | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->getFileHashes(['location' => InputFileLocation, 'offset' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.getFileHashes({location=InputFileLocation, offset=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LOCATION_INVALID|The provided location is invalid|
diff --git a/old_docs/API_docs_v95/methods/upload_getWebFile.md b/old_docs/API_docs_v95/methods/upload_getWebFile.md
index 21179a66..7b63f96c 100644
--- a/old_docs/API_docs_v95/methods/upload_getWebFile.md
+++ b/old_docs/API_docs_v95/methods/upload_getWebFile.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
upload_WebFile = upload.getWebFile({location=InputWebFileLocation, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LOCATION_INVALID|The provided location is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LOCATION_INVALID|The provided location is invalid|
diff --git a/old_docs/API_docs_v95/methods/upload_reuploadCdnFile.md b/old_docs/API_docs_v95/methods/upload_reuploadCdnFile.md
index cc20d5e3..f531557c 100644
--- a/old_docs/API_docs_v95/methods/upload_reuploadCdnFile.md
+++ b/old_docs/API_docs_v95/methods/upload_reuploadCdnFile.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|request\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->reuploadCdnFile(['file_token' => 'bytes', 'request_token' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.reuploadCdnFile({file_token='bytes', request_token='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/old_docs/API_docs_v95/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v95/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v95/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v95/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v95/methods/upload_saveFilePart.md b/old_docs/API_docs_v95/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v95/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v95/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v95/methods/users_getFullUser.md b/old_docs/API_docs_v95/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v95/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v95/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v95/methods/users_getUsers.md b/old_docs/API_docs_v95/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v95/methods/users_getUsers.md
+++ b/old_docs/API_docs_v95/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v95/methods/users_setSecureValueErrors.md b/old_docs/API_docs_v95/methods/users_setSecureValueErrors.md
index 40e398ab..661137fb 100644
--- a/old_docs/API_docs_v95/methods/users_setSecureValueErrors.md
+++ b/old_docs/API_docs_v95/methods/users_setSecureValueErrors.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = users.setSecureValueErrors({id=InputUser, errors={SecureValueError}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v97/methods/README.md b/old_docs/API_docs_v97/methods/README.md
index 40b677ff..a161eab6 100644
--- a/old_docs/API_docs_v97/methods/README.md
+++ b/old_docs/API_docs_v97/methods/README.md
@@ -30,523 +30,3 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
* [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
-* Accept telegram passport authorization: account.acceptAuthorization
-
-* Accept telegram's TOS: help.acceptTermsOfService
-
-* Add a sticker set: messages.installStickerSet
-
-* Add a sticker to favorites: messages.faveSticker
-
-* Add a sticker to recent stickers: messages.saveRecentSticker
-
-* Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
-
-* Add phone number as contact: contacts.importContacts
-
-* Add sticker to stickerset: stickers.addStickerToSet
-
-* Add users to channel/supergroup: channels.inviteToChannel
-
-* Block a user: contacts.block
-
-* Bots only: get telegram passport authorization form: account.getAuthorizationForm
-
-* Bots only: send payment form: payments.sendPaymentForm
-
-* Bots only: set precheckout results: messages.setBotPrecheckoutResults
-
-* Bots only: set shipping results: messages.setBotShippingResults
-
-* Bots only: set the callback answer (after a button was clicked): messages.setBotCallbackAnswer
-
-* Bots only: set the results of an inline query: messages.setInlineBotResults
-
-* Call inline bot: messages.getInlineBotResults
-
-* Cancel password recovery email: account.cancelPasswordEmail
-
-* Change notification settings: account.updateNotifySettings
-
-* Change sticker position in photo: stickers.changeStickerPosition
-
-* Change the phone number associated to this account: account.changePhone
-
-* Change the phone number: account.sendChangePhoneCode
-
-* Change the profile photo: photos.updateProfilePhoto
-
-* Change typing status: messages.setTyping
-
-* Check if about to edit a message or a media caption: messages.getMessageEditData
-
-* Check if an invitation link is valid: messages.checkChatInvite
-
-* Check if this username is available: account.checkUsername
-
-* Check if this username is free and can be assigned to a channel/supergroup: channels.checkUsername
-
-* Clear all drafts: messages.clearAllDrafts
-
-* Clear all recent stickers: messages.clearRecentStickers
-
-* Clear saved payments info: payments.clearSavedInfo
-
-* Confirm password recovery using email: account.confirmPasswordEmail
-
-* Confirm this phone number is associated to this account, obtain phone_code_hash from sendConfirmPhoneCode: account.confirmPhone
-
-* Contact signup notification setting value: account.getContactSignUpNotification
-
-* Convert chat to supergroup: messages.migrateChat
-
-* Create a chat (not supergroup): messages.createChat
-
-* Create channel/supergroup: channels.createChannel
-
-* Create stickerset: stickers.createStickerSet
-
-* Delete a certain session: account.resetAuthorization
-
-* Delete a certain telegram web login authorization: account.resetWebAuthorization
-
-* Delete a channel/supergroup: channels.deleteChannel
-
-* Delete a contact: contacts.deleteContact
-
-* Delete a user from a chat (not supergroup): messages.deleteChatUser
-
-* Delete all logged-in sessions.: auth.resetAuthorizations
-
-* Delete all messages of a user in a channel/supergroup: channels.deleteUserHistory
-
-* Delete all temporary authorization keys except the ones provided: auth.dropTempAuthKeys
-
-* Delete channel/supergroup messages: channels.deleteMessages
-
-* Delete chat history: messages.deleteHistory
-
-* Delete contacts by phones: contacts.deleteByPhones
-
-* Delete messages: messages.deleteMessages
-
-* Delete multiple contacts: contacts.deleteContacts
-
-* Delete profile photos: photos.deletePhotos
-
-* Delete secure telegram passport value: account.deleteSecureValue
-
-* Delete the history of a supergroup/channel: channels.deleteHistory
-
-* Delete this account: account.deleteAccount
-
-* Disable all notifications for a certain period: account.updateDeviceLocked
-
-* Download a file through telegram: upload.getWebFile
-
-* Edit a message: messages.editMessage
-
-* Edit a sent inline message: messages.editInlineBotMessage
-
-* Edit admin permissions of a user in a channel/supergroup: channels.editAdmin
-
-* Edit admin permissions: messages.editChatAdmin
-
-* Edit chat info: messages.editChatAbout
-
-* Edit default rights of chat: messages.editChatDefaultBannedRights
-
-* Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
-
-* Edit the photo of a supergroup/channel: channels.editPhoto
-
-* Edit the title of a normal chat (not supergroup): messages.editChatTitle
-
-* Edit the title of a supergroup/channel: channels.editTitle
-
-* Edit user info: help.editUserInfo
-
-* Enable or disable hidden history for new channel/supergroup users: channels.togglePreHistoryHidden
-
-* Export chat invite : messages.exportChatInvite
-
-* Find a sticker set: messages.searchStickerSets
-
-* Finish account exporting session: account.finishTakeoutSession
-
-* Forward messages: messages.forwardMessages
-
-* Get CDN configuration: help.getCdnConfig
-
-* Get a stickerset: messages.getStickerSet
-
-* Get account TTL: account.getAccountTTL
-
-* Get admin log of a channel/supergroup: channels.getAdminLog
-
-* Get all archived stickers: messages.getArchivedStickers
-
-* Get all channels you left: channels.getLeftChannels
-
-* Get all chats (not supergroups or channels): messages.getAllChats
-
-* Get all contacts: contacts.getContacts
-
-* Get all logged-in authorizations: account.getAuthorizations
-
-* Get all message drafts: messages.getAllDrafts
-
-* Get all secure telegram passport values: account.getAllSecureValues
-
-* Get all stickerpacks: messages.getAllStickers
-
-* Get all supergroups/channels where you're admin: channels.getAdminedPublicChannels
-
-* Get and increase message views: messages.getMessagesViews
-
-* Get app config: help.getAppConfig
-
-* Get autodownload settings: account.getAutoDownloadSettings
-
-* Get available languages: langpack.getLanguages
-
-* Get blocked users: contacts.getBlocked
-
-* Get call configuration: phone.getCallConfig
-
-* Get channel/supergroup messages: channels.getMessages
-
-* Get channel/supergroup participants (you should use `$MadelineProto->get_pwr_chat($id)` instead): channels.getParticipants
-
-* Get chats in common with a user: messages.getCommonChats
-
-* Get contacts by IDs: contacts.getContactIDs
-
-* Get deep link info: help.getDeepLinkInfo
-
-* Get dialog info of peers: messages.getPeerDialogs
-
-* Get dialogs marked as unread manually: messages.getDialogUnreadMarks
-
-* Get document by SHA256 hash: messages.getDocumentByHash
-
-* Get emoji URL: messages.getEmojiURL
-
-* Get emoji keyword difference: messages.getEmojiKeywordsDifference
-
-* Get emoji keywords: messages.getEmojiKeywords
-
-* Get favorite stickers: messages.getFavedStickers
-
-* Get featured stickers: messages.getFeaturedStickers
-
-* Get high scores of a game sent in an inline message: messages.getInlineGameHighScores
-
-* Get high scores of a game: messages.getGameHighScores
-
-* Get info about a certain channel/supergroup participant: channels.getParticipant
-
-* Get info about app updates: help.getAppUpdate
-
-* Get info about chats: messages.getChats
-
-* Get info about multiple channels/supergroups: channels.getChannels
-
-* Get info about users: users.getUsers
-
-* Get info of support user: help.getSupport
-
-* Get information about the current proxy: help.getProxyData
-
-* Get invitation text: help.getInviteText
-
-* Get language pack strings: langpack.getStrings
-
-* Get language pack updates: langpack.getDifference
-
-* Get language pack: langpack.getLangPack
-
-* Get language: langpack.getLanguage
-
-* Get masks: messages.getMaskStickers
-
-* Get message ranges to fetch: messages.getSplitRanges
-
-* Get messages: messages.getMessages
-
-* Get most used chats: contacts.getTopPeers
-
-* Get nearest datacenter: help.getNearestDc
-
-* Get notification exceptions: account.getNotifyExceptions
-
-* Get notification settings: account.getNotifySettings
-
-* Get online status of all users: contacts.getStatuses
-
-* Get online users: messages.getOnlines
-
-* Get passport config: help.getPassportConfig
-
-* Get payment form: payments.getPaymentForm
-
-* Get payment receipt: payments.getPaymentReceipt
-
-* Get pinned dialogs: messages.getPinnedDialogs
-
-* Get poll results: messages.getPollResults
-
-* Get previous messages of a group: messages.getHistory
-
-* Get privacy settings: account.getPrivacy
-
-* Get recent locations: messages.getRecentLocations
-
-* Get recent stickers: messages.getRecentStickers
-
-* Get recent t.me URLs: help.getRecentMeUrls
-
-* Get saved contacts: contacts.getSaved
-
-* Get saved gifs: messages.getSavedGifs
-
-* Get saved payments info: payments.getSavedInfo
-
-* Get secure value for telegram passport: account.getSecureValue
-
-* Get server configuration: help.getConfig
-
-* Get stats URL: messages.getStatsURL
-
-* Get stickers attachable to images: messages.getAttachedStickers
-
-* Get stickers: messages.getStickers
-
-* Get support name: help.getSupportName
-
-* Get telegram web login authorizations: account.getWebAuthorizations
-
-* Get temporary password for buying products through bots: account.getTmpPassword
-
-* Get the callback answer of a bot (after clicking a button): messages.getBotCallbackAnswer
-
-* Get the changelog of this app: help.getAppChangelog
-
-* Get the current password: account.getPassword
-
-* Get the link of a message in a channel: channels.exportMessageLink
-
-* Get the profile photos of a user: photos.getUserPhotos
-
-* Get the settings of apeer: messages.getPeerSettings
-
-* Get unread mentions: messages.getUnreadMentions
-
-* Get updated TOS: help.getTermsOfServiceUpdate
-
-* Get user info: help.getUserInfo
-
-* Get wallpaper info: account.getWallPaper
-
-* Get webpage preview: messages.getWebPage
-
-* Get webpage preview: messages.getWebPagePreview
-
-* Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
-
-* Global message search: messages.searchGlobal
-
-* Hide report spam popup: messages.hideReportSpam
-
-* Import chat invite: messages.importChatInvite
-
-* Initializes connection and save information on the user's device and application.: initConnection
-
-* Install wallpaper: account.installWallPaper
-
-* Invalidate sent phone code: auth.cancelCode
-
-* Invoke method from takeout session: invokeWithTakeout
-
-* Invoke this method with layer X: invokeWithLayer
-
-* Invoke with messages range: invokeWithMessagesRange
-
-* Invoke with method without returning updates in the socket: invokeWithoutUpdates
-
-* Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
-
-* Join a channel/supergroup: channels.joinChannel
-
-* Kick or ban a user from a channel/supergroup: channels.editBanned
-
-* Leave a channel/supergroup: channels.leaveChannel
-
-* Log data for developer of this app: help.saveAppLog
-
-* Mark channel/supergroup history as read: channels.readHistory
-
-* Mark channel/supergroup messages as read: channels.readMessageContents
-
-* Mark dialog as unread : messages.markDialogUnread
-
-* Mark mentions as read: messages.readMentions
-
-* Mark message as read: messages.readMessageContents
-
-* Mark messages as read in secret chats: messages.readEncryptedHistory
-
-* Mark messages as read: messages.readHistory
-
-* Mark messages as read: messages.receivedMessages
-
-* Mark new featured stickers as read: messages.readFeaturedStickers
-
-* Notify server that you received a call (server will refuse all incoming calls until the current call is over): phone.receivedCall
-
-* Pin or unpin dialog: messages.toggleDialogPin
-
-* Register device for push notifications: account.registerDevice
-
-* Remove a sticker set: messages.uninstallStickerSet
-
-* Remove sticker from stickerset: stickers.removeStickerFromSet
-
-* Reorder pinned dialogs: messages.reorderPinnedDialogs
-
-* Reorder sticker sets: messages.reorderStickerSets
-
-* Report a message in a supergroup/channel for spam: channels.reportSpam
-
-* Report a message: messages.report
-
-* Report a peer for spam: messages.reportSpam
-
-* Report for spam a secret chat: messages.reportEncryptedSpam
-
-* Report for spam: account.reportPeer
-
-* Resend password recovery email: account.resendPasswordEmail
-
-* Resend the SMS verification code: auth.resendCode
-
-* Reset all notification settings: account.resetNotifySettings
-
-* Reset all telegram web login authorizations: account.resetWebAuthorizations
-
-* Reset saved contacts: contacts.resetSaved
-
-* Reset top peer rating for a certain category/peer: contacts.resetTopPeerRating
-
-* Reset wallpapers: account.resetWallPapers
-
-* Result type returned by a current query.: invokeAfterMsgs
-
-* Returns a list of available wallpapers.: account.getWallPapers
-
-* Save a GIF: messages.saveGif
-
-* Save a message draft: messages.saveDraft
-
-* Save autodownload settings: account.saveAutoDownloadSettings
-
-* Save call debugging info: phone.saveCallDebug
-
-* Save telegram passport secure value: account.saveSecureValue
-
-* Save wallpaper: account.saveWallPaper
-
-* Search contacts: contacts.search
-
-* Search gifs: messages.searchGifs
-
-* Search peers or messages: messages.search
-
-* Send a custom request to the bot API: bots.sendCustomRequest
-
-* Send a file to a secret chat: messages.sendEncryptedFile
-
-* Send a media: messages.sendMedia
-
-* Send a message: messages.sendMessage
-
-* Send a service message to a secret chat: messages.sendEncryptedService
-
-* Send an album: messages.sendMultiMedia
-
-* Send an email to recover the 2FA password: auth.requestPasswordRecovery
-
-* Send confirmation phone code: account.sendConfirmPhoneCode
-
-* Send email verification code: account.sendVerifyEmailCode
-
-* Send inline bot result obtained with messages.getInlineBotResults to the chat: messages.sendInlineBotResult
-
-* Send message to secret chat: messages.sendEncrypted
-
-* Send phone verification code: account.sendVerifyPhoneCode
-
-* Send screenshot notification: messages.sendScreenshotNotification
-
-* Send typing notification to secret chat: messages.setEncryptedTyping
-
-* Send vote: messages.sendVote
-
-* Send webhook request via bot API: bots.answerWebhookJSONQuery
-
-* Set account TTL: account.setAccountTTL
-
-* Set contact sign up notification: account.setContactSignUpNotification
-
-* Set phone call rating: phone.setCallRating
-
-* Set privacy settings: account.setPrivacy
-
-* Set secure value error for telegram passport: users.setSecureValueErrors
-
-* Set the game score of an inline message: messages.setInlineGameScore
-
-* Set the game score: messages.setGameScore
-
-* Set the supergroup/channel stickerpack: channels.setStickers
-
-* Set the update status of webhook: help.setBotUpdatesStatus
-
-* Start a bot: messages.startBot
-
-* Start account exporting session: account.initTakeoutSession
-
-* Stop sending PUSH notifications to app: account.unregisterDevice
-
-* Toggle channel signatures: channels.toggleSignatures
-
-* Toggle top peers: contacts.toggleTopPeers
-
-* Unblock a user: contacts.unblock
-
-* Update online status: account.updateStatus
-
-* Update pinned message: messages.updatePinnedMessage
-
-* Update profile info: account.updateProfile
-
-* Update the username of a supergroup/channel: channels.updateUsername
-
-* Update this user's username: account.updateUsername
-
-* Upload a file without sending it to anyone: messages.uploadMedia
-
-* Upload a secret chat file without sending it to anyone: messages.uploadEncryptedFile
-
-* Upload profile photo: photos.uploadProfilePhoto
-
-* Upload wallpaper: account.uploadWallPaper
-
-* Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
-
-* Validate requested payment info: payments.validateRequestedInfo
-
-* Verify email address: account.verifyEmail
-
-* Verify phone number: account.verifyPhone
-
diff --git a/old_docs/API_docs_v97/methods/account_changePhone.md b/old_docs/API_docs_v97/methods/account_changePhone.md
index b197aa26..2723f283 100644
--- a/old_docs/API_docs_v97/methods/account_changePhone.md
+++ b/old_docs/API_docs_v97/methods/account_changePhone.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
User = account.changePhone({phone_number='string', phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v97/methods/account_checkUsername.md b/old_docs/API_docs_v97/methods/account_checkUsername.md
index 2a66e6be..65850b81 100644
--- a/old_docs/API_docs_v97/methods/account_checkUsername.md
+++ b/old_docs/API_docs_v97/methods/account_checkUsername.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.checkUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v97/methods/account_confirmPhone.md b/old_docs/API_docs_v97/methods/account_confirmPhone.md
index b730c2dc..c114cd20 100644
--- a/old_docs/API_docs_v97/methods/account_confirmPhone.md
+++ b/old_docs/API_docs_v97/methods/account_confirmPhone.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = account.confirmPhone({phone_code_hash='string', phone_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_HASH_INVALID|Code hash invalid|
-|PHONE_CODE_EMPTY|phone_code is missing|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_HASH_INVALID|Code hash invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
diff --git a/old_docs/API_docs_v97/methods/account_getNotifySettings.md b/old_docs/API_docs_v97/methods/account_getNotifySettings.md
index c5a90764..7b8a3b02 100644
--- a/old_docs/API_docs_v97/methods/account_getNotifySettings.md
+++ b/old_docs/API_docs_v97/methods/account_getNotifySettings.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
PeerNotifySettings = account.getNotifySettings({peer=InputNotifyPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v97/methods/account_getPasswordSettings.md b/old_docs/API_docs_v97/methods/account_getPasswordSettings.md
index 8ebb78ee..e41c6b67 100644
--- a/old_docs/API_docs_v97/methods/account_getPasswordSettings.md
+++ b/old_docs/API_docs_v97/methods/account_getPasswordSettings.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+Get the current 2FA settings
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password|[InputCheckPasswordSRP](../types/InputCheckPasswordSRP.md) | You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [account\_PasswordSettings](../types/account_PasswordSettings.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$account_PasswordSettings = $MadelineProto->account->getPasswordSettings(['password' => InputCheckPasswordSRP, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+account_PasswordSettings = account.getPasswordSettings({password=InputCheckPasswordSRP, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v97/methods/account_getPrivacy.md b/old_docs/API_docs_v97/methods/account_getPrivacy.md
index 32b7e97a..2eb976f5 100644
--- a/old_docs/API_docs_v97/methods/account_getPrivacy.md
+++ b/old_docs/API_docs_v97/methods/account_getPrivacy.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.getPrivacy({key=InputPrivacyKey, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v97/methods/account_getTmpPassword.md b/old_docs/API_docs_v97/methods/account_getTmpPassword.md
index 3a29d97a..0ae4061f 100644
--- a/old_docs/API_docs_v97/methods/account_getTmpPassword.md
+++ b/old_docs/API_docs_v97/methods/account_getTmpPassword.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
account_TmpPassword = account.getTmpPassword({password=InputCheckPasswordSRP, period=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_HASH_INVALID|The provided password hash is invalid|
-|TMP_PASSWORD_DISABLED|The temporary password is disabled|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
+|400|TMP_PASSWORD_DISABLED|The temporary password is disabled|
diff --git a/old_docs/API_docs_v97/methods/account_registerDevice.md b/old_docs/API_docs_v97/methods/account_registerDevice.md
index 7c34f6c4..a8e8c2a2 100644
--- a/old_docs/API_docs_v97/methods/account_registerDevice.md
+++ b/old_docs/API_docs_v97/methods/account_registerDevice.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
Bool = account.registerDevice({token_type=int, token='string', app_sandbox=Bool, secret='bytes', other_uids={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v97/methods/account_reportPeer.md b/old_docs/API_docs_v97/methods/account_reportPeer.md
index a203c900..87b080eb 100644
--- a/old_docs/API_docs_v97/methods/account_reportPeer.md
+++ b/old_docs/API_docs_v97/methods/account_reportPeer.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.reportPeer({peer=InputPeer, reason=ReportReason, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v97/methods/account_resetAuthorization.md b/old_docs/API_docs_v97/methods/account_resetAuthorization.md
index c950992c..e8e8ecc4 100644
--- a/old_docs/API_docs_v97/methods/account_resetAuthorization.md
+++ b/old_docs/API_docs_v97/methods/account_resetAuthorization.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.resetAuthorization({hash=long, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v97/methods/account_sendChangePhoneCode.md b/old_docs/API_docs_v97/methods/account_sendChangePhoneCode.md
index 3a0923f8..26375a94 100644
--- a/old_docs/API_docs_v97/methods/account_sendChangePhoneCode.md
+++ b/old_docs/API_docs_v97/methods/account_sendChangePhoneCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendChangePhoneCode({phone_number='string', settings=CodeSettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v97/methods/account_sendConfirmPhoneCode.md b/old_docs/API_docs_v97/methods/account_sendConfirmPhoneCode.md
index 02896f84..426b70b8 100644
--- a/old_docs/API_docs_v97/methods/account_sendConfirmPhoneCode.md
+++ b/old_docs/API_docs_v97/methods/account_sendConfirmPhoneCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = account.sendConfirmPhoneCode({hash='string', settings=CodeSettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|HASH_INVALID|The provided hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|HASH_INVALID|The provided hash is invalid|
diff --git a/old_docs/API_docs_v97/methods/account_setAccountTTL.md b/old_docs/API_docs_v97/methods/account_setAccountTTL.md
index 2f38af46..41b89921 100644
--- a/old_docs/API_docs_v97/methods/account_setAccountTTL.md
+++ b/old_docs/API_docs_v97/methods/account_setAccountTTL.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.setAccountTTL({ttl=AccountDaysTTL, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TTL_DAYS_INVALID|The provided TTL is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TTL_DAYS_INVALID|The provided TTL is invalid|
diff --git a/old_docs/API_docs_v97/methods/account_setPrivacy.md b/old_docs/API_docs_v97/methods/account_setPrivacy.md
index c71fd1af..c484eb2b 100644
--- a/old_docs/API_docs_v97/methods/account_setPrivacy.md
+++ b/old_docs/API_docs_v97/methods/account_setPrivacy.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
account_PrivacyRules = account.setPrivacy({key=InputPrivacyKey, rules={InputPrivacyRule}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PRIVACY_KEY_INVALID|The privacy key is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PRIVACY_KEY_INVALID|The privacy key is invalid|
diff --git a/old_docs/API_docs_v97/methods/account_unregisterDevice.md b/old_docs/API_docs_v97/methods/account_unregisterDevice.md
index 13d11e88..e39f0811 100644
--- a/old_docs/API_docs_v97/methods/account_unregisterDevice.md
+++ b/old_docs/API_docs_v97/methods/account_unregisterDevice.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = account.unregisterDevice({token_type=int, token='string', other_uids={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TOKEN_INVALID|The provided token is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TOKEN_INVALID|The provided token is invalid|
diff --git a/old_docs/API_docs_v97/methods/account_updateNotifySettings.md b/old_docs/API_docs_v97/methods/account_updateNotifySettings.md
index 4ba93494..64b65293 100644
--- a/old_docs/API_docs_v97/methods/account_updateNotifySettings.md
+++ b/old_docs/API_docs_v97/methods/account_updateNotifySettings.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = account.updateNotifySettings({peer=InputNotifyPeer, settings=InputPeerNotifySettings, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v97/methods/account_updatePasswordSettings.md b/old_docs/API_docs_v97/methods/account_updatePasswordSettings.md
index 80f27228..7afb81ea 100644
--- a/old_docs/API_docs_v97/methods/account_updatePasswordSettings.md
+++ b/old_docs/API_docs_v97/methods/account_updatePasswordSettings.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password|[InputCheckPasswordSRP](../types/InputCheckPasswordSRP.md) | You cannot use this method directly; use $MadelineProto->update_2fa($params), instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|new\_settings|[account\_PasswordInputSettings](../types/account_PasswordInputSettings.md) | New 2FA settings | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->account->updatePasswordSettings(['password' => InputCheckPasswordSRP, 'new_settings' => account_PasswordInputSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = account.updatePasswordSettings({password=InputCheckPasswordSRP, new_settings=account_PasswordInputSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|EMAIL_UNCONFIRMED|Email unconfirmed|
+|400|EMAIL_UNCONFIRMED_X|The provided email isn't confirmed, X is the length of the verification code that was just sent to the email.|
+|400|NEW_SALT_INVALID|The new salt is invalid|
+|400|NEW_SETTINGS_INVALID|The new settings are invalid|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v97/methods/account_updateProfile.md b/old_docs/API_docs_v97/methods/account_updateProfile.md
index af5b6a0f..0d74c5e5 100644
--- a/old_docs/API_docs_v97/methods/account_updateProfile.md
+++ b/old_docs/API_docs_v97/methods/account_updateProfile.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
User = account.updateProfile({first_name='string', last_name='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ABOUT_TOO_LONG|About string too long|
-|FIRSTNAME_INVALID|The first name is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ABOUT_TOO_LONG|About string too long|
+|400|FIRSTNAME_INVALID|The first name is invalid|
diff --git a/old_docs/API_docs_v97/methods/account_updateStatus.md b/old_docs/API_docs_v97/methods/account_updateStatus.md
index 67c74d6e..53795416 100644
--- a/old_docs/API_docs_v97/methods/account_updateStatus.md
+++ b/old_docs/API_docs_v97/methods/account_updateStatus.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = account.updateStatus({offline=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v97/methods/account_updateUsername.md b/old_docs/API_docs_v97/methods/account_updateUsername.md
index 94d4af93..62619800 100644
--- a/old_docs/API_docs_v97/methods/account_updateUsername.md
+++ b/old_docs/API_docs_v97/methods/account_updateUsername.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
User = account.updateUsername({username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_NOT_MODIFIED|The username was not modified|
-|USERNAME_OCCUPIED|The provided username is already occupied|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_MODIFIED|The username was not modified|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v97/methods/auth_bindTempAuthKey.md b/old_docs/API_docs_v97/methods/auth_bindTempAuthKey.md
index 4fd80e0f..9740c66c 100644
--- a/old_docs/API_docs_v97/methods/auth_bindTempAuthKey.md
+++ b/old_docs/API_docs_v97/methods/auth_bindTempAuthKey.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info**
+You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|perm\_auth\_key\_id|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|nonce|[long](../types/long.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|expires\_at|[int](../types/int.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+|encrypted\_message|[bytes](../types/bytes.md) | You cannot use this method directly, instead modify the PFS and default_temp_auth_key_expires_in settings, see https://docs.madelineproto.xyz/docs/SETTINGS.html for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->bindTempAuthKey(['perm_auth_key_id' => long, 'nonce' => long, 'expires_at' => int, 'encrypted_message' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.bindTempAuthKey({perm_auth_key_id=long, nonce=long, expires_at=int, encrypted_message='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ENCRYPTED_MESSAGE_INVALID|Encrypted message invalid|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|TEMP_AUTH_KEY_EMPTY|No temporary auth key provided|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v97/methods/auth_cancelCode.md b/old_docs/API_docs_v97/methods/auth_cancelCode.md
index fcbd7713..a69e0118 100644
--- a/old_docs/API_docs_v97/methods/auth_cancelCode.md
+++ b/old_docs/API_docs_v97/methods/auth_cancelCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = auth.cancelCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v97/methods/auth_checkPassword.md b/old_docs/API_docs_v97/methods/auth_checkPassword.md
index 8d76c483..ad2a88a2 100644
--- a/old_docs/API_docs_v97/methods/auth_checkPassword.md
+++ b/old_docs/API_docs_v97/methods/auth_checkPassword.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|password|[InputCheckPasswordSRP](../types/InputCheckPasswordSRP.md) | You cannot use this method directly, use the complete_2fa_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->checkPassword(['password' => InputCheckPasswordSRP, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.checkPassword({password=InputCheckPasswordSRP, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_HASH_INVALID|The provided password hash is invalid|
diff --git a/old_docs/API_docs_v97/methods/auth_exportAuthorization.md b/old_docs/API_docs_v97/methods/auth_exportAuthorization.md
index a83216ad..ce2e6c7d 100644
--- a/old_docs/API_docs_v97/methods/auth_exportAuthorization.md
+++ b/old_docs/API_docs_v97/methods/auth_exportAuthorization.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|dc\_id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->export_authorization() instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_ExportedAuthorization](../types/auth_ExportedAuthorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_ExportedAuthorization = $MadelineProto->auth->exportAuthorization(['dc_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_ExportedAuthorization = auth.exportAuthorization({dc_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DC_ID_INVALID|The provided DC ID is invalid|
diff --git a/old_docs/API_docs_v97/methods/auth_importAuthorization.md b/old_docs/API_docs_v97/methods/auth_importAuthorization.md
index ebd53001..4a943668 100644
--- a/old_docs/API_docs_v97/methods/auth_importAuthorization.md
+++ b/old_docs/API_docs_v97/methods/auth_importAuthorization.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html**
+You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[int](../types/int.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use $MadelineProto->import_authorization($authorization) instead, see https://docs.madelineproto.xyz/docs/LOGIN.html | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importAuthorization(['id' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importAuthorization({id=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v97/methods/auth_importBotAuthorization.md b/old_docs/API_docs_v97/methods/auth_importBotAuthorization.md
index 1a98c1b9..98a2f8ca 100644
--- a/old_docs/API_docs_v97/methods/auth_importBotAuthorization.md
+++ b/old_docs/API_docs_v97/methods/auth_importBotAuthorization.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|api\_id|[int](../types/int.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|api\_hash|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|bot\_auth\_token|[string](../types/string.md) | You cannot use this method directly, use the bot_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->importBotAuthorization(['api_id' => int, 'api_hash' => 'string', 'bot_auth_token' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.importBotAuthorization({api_id=int, api_hash='string', bot_auth_token='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ACCESS_TOKEN_EXPIRED|Access token expired|
+|400|ACCESS_TOKEN_INVALID|Access token invalid|
+|400|API_ID_INVALID|API ID invalid|
diff --git a/old_docs/API_docs_v97/methods/auth_logOut.md b/old_docs/API_docs_v97/methods/auth_logOut.md
index a7126ea2..074461d4 100644
--- a/old_docs/API_docs_v97/methods/auth_logOut.md
+++ b/old_docs/API_docs_v97/methods/auth_logOut.md
@@ -7,8 +7,33 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the logout method instead (see https://docs.madelineproto.xyz for more info)
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->auth->logOut();
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = auth.logOut({})
+```
diff --git a/old_docs/API_docs_v97/methods/auth_recoverPassword.md b/old_docs/API_docs_v97/methods/auth_recoverPassword.md
index 83ff5aed..d4bad9c5 100644
--- a/old_docs/API_docs_v97/methods/auth_recoverPassword.md
+++ b/old_docs/API_docs_v97/methods/auth_recoverPassword.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
auth_Authorization = auth.recoverPassword({code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CODE_EMPTY|The provided code is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CODE_EMPTY|The provided code is empty|
diff --git a/old_docs/API_docs_v97/methods/auth_requestPasswordRecovery.md b/old_docs/API_docs_v97/methods/auth_requestPasswordRecovery.md
index 1864bbb0..b6ad57ba 100644
--- a/old_docs/API_docs_v97/methods/auth_requestPasswordRecovery.md
+++ b/old_docs/API_docs_v97/methods/auth_requestPasswordRecovery.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
auth_PasswordRecovery = auth.requestPasswordRecovery({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PASSWORD_EMPTY|The provided password is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PASSWORD_EMPTY|The provided password is empty|
diff --git a/old_docs/API_docs_v97/methods/auth_resendCode.md b/old_docs/API_docs_v97/methods/auth_resendCode.md
index ff7868ea..ec730d75 100644
--- a/old_docs/API_docs_v97/methods/auth_resendCode.md
+++ b/old_docs/API_docs_v97/methods/auth_resendCode.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
auth_SentCode = auth.resendCode({phone_number='string', phone_code_hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PHONE_NUMBER_INVALID|The phone number is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
diff --git a/old_docs/API_docs_v97/methods/auth_resetAuthorizations.md b/old_docs/API_docs_v97/methods/auth_resetAuthorizations.md
index 574296ab..57ed055d 100644
--- a/old_docs/API_docs_v97/methods/auth_resetAuthorizations.md
+++ b/old_docs/API_docs_v97/methods/auth_resetAuthorizations.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Bool = auth.resetAuthorizations({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v97/methods/auth_sendCode.md b/old_docs/API_docs_v97/methods/auth_sendCode.md
index 9afebb55..83dfd500 100644
--- a/old_docs/API_docs_v97/methods/auth_sendCode.md
+++ b/old_docs/API_docs_v97/methods/auth_sendCode.md
@@ -7,8 +7,58 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+Use phone_login instead
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | Use phone_login instead | Yes|
+|api\_id|[int](../types/int.md) | Use phone_login instead | Yes|
+|api\_hash|[string](../types/string.md) | Use phone_login instead | Yes|
+|settings|[CodeSettings](../types/CodeSettings.md) | You cannot use this method directly, use the phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_SentCode](../types/auth_SentCode.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_SentCode = $MadelineProto->auth->sendCode(['phone_number' => 'string', 'api_id' => int, 'api_hash' => 'string', 'settings' => CodeSettings, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_SentCode = auth.sendCode({phone_number='string', api_id=int, api_hash='string', settings=CodeSettings, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|API_ID_INVALID|API ID invalid|
+|400|API_ID_PUBLISHED_FLOOD|This API id was published somewhere, you can't use it now|
+|400|INPUT_REQUEST_TOO_LONG|The request is too big|
+|400|PHONE_NUMBER_APP_SIGNUP_FORBIDDEN|You can't sign up using this app|
+|400|PHONE_NUMBER_BANNED|The provided phone number is banned from telegram|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_PASSWORD_PROTECTED|This phone is password protected|
+|400|SMS_CODE_CREATE_FAILED|An error occurred while creating the SMS code|
+|406|PHONE_NUMBER_INVALID|The phone number is invalid|
+|406|PHONE_PASSWORD_FLOOD|You have tried logging in too many times|
diff --git a/old_docs/API_docs_v97/methods/auth_signIn.md b/old_docs/API_docs_v97/methods/auth_signIn.md
index 156b7fb5..b1844f62 100644
--- a/old_docs/API_docs_v97/methods/auth_signIn.md
+++ b/old_docs/API_docs_v97/methods/auth_signIn.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_phone_login method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signIn(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signIn({phone_number='string', phone_code_hash='string', phone_code='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_UNOCCUPIED|The phone number is not yet being used|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v97/methods/auth_signUp.md b/old_docs/API_docs_v97/methods/auth_signUp.md
index 15960145..31154486 100644
--- a/old_docs/API_docs_v97/methods/auth_signUp.md
+++ b/old_docs/API_docs_v97/methods/auth_signUp.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|phone\_number|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code\_hash|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|phone\_code|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|first\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+|last\_name|[string](../types/string.md) | You cannot use this method directly, use the complete_signup method instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [auth\_Authorization](../types/auth_Authorization.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$auth_Authorization = $MadelineProto->auth->signUp(['phone_number' => 'string', 'phone_code_hash' => 'string', 'phone_code' => 'string', 'first_name' => 'string', 'last_name' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+auth_Authorization = auth.signUp({phone_number='string', phone_code_hash='string', phone_code='string', first_name='string', last_name='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FIRSTNAME_INVALID|The first name is invalid|
+|400|PHONE_CODE_EMPTY|phone_code is missing|
+|400|PHONE_CODE_EXPIRED|The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars)|
+|400|PHONE_CODE_INVALID|The provided phone code is invalid|
+|400|PHONE_NUMBER_FLOOD|You asked for the code too many times.|
+|400|PHONE_NUMBER_INVALID|The phone number is invalid|
+|400|PHONE_NUMBER_OCCUPIED|The phone number is already in use|
diff --git a/old_docs/API_docs_v97/methods/bots_answerWebhookJSONQuery.md b/old_docs/API_docs_v97/methods/bots_answerWebhookJSONQuery.md
index ae0fa6d9..f2233514 100644
--- a/old_docs/API_docs_v97/methods/bots_answerWebhookJSONQuery.md
+++ b/old_docs/API_docs_v97/methods/bots_answerWebhookJSONQuery.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = bots.answerWebhookJSONQuery({query_id=long, data=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v97/methods/bots_sendCustomRequest.md b/old_docs/API_docs_v97/methods/bots_sendCustomRequest.md
index c1fd8183..8a6a2df5 100644
--- a/old_docs/API_docs_v97/methods/bots_sendCustomRequest.md
+++ b/old_docs/API_docs_v97/methods/bots_sendCustomRequest.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
DataJSON = bots.sendCustomRequest({custom_method='string', params=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v97/methods/channels_checkUsername.md b/old_docs/API_docs_v97/methods/channels_checkUsername.md
index 483a2f6f..52365d34 100644
--- a/old_docs/API_docs_v97/methods/channels_checkUsername.md
+++ b/old_docs/API_docs_v97/methods/channels_checkUsername.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Bool = channels.checkUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|USERNAME_INVALID|The provided username is not valid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|USERNAME_INVALID|The provided username is not valid|
diff --git a/old_docs/API_docs_v97/methods/channels_createChannel.md b/old_docs/API_docs_v97/methods/channels_createChannel.md
index b924e6a6..ecaee0ef 100644
--- a/old_docs/API_docs_v97/methods/channels_createChannel.md
+++ b/old_docs/API_docs_v97/methods/channels_createChannel.md
@@ -45,12 +45,12 @@ Or, if you're into Lua:
Updates = channels.createChannel({broadcast=Bool, megagroup=Bool, title='string', about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_TITLE_EMPTY|No chat title provided|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
+|406|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v97/methods/channels_deleteChannel.md b/old_docs/API_docs_v97/methods/channels_deleteChannel.md
index 53a9c23d..1b8d2d48 100644
--- a/old_docs/API_docs_v97/methods/channels_deleteChannel.md
+++ b/old_docs/API_docs_v97/methods/channels_deleteChannel.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Updates = channels.deleteChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v97/methods/channels_deleteMessages.md b/old_docs/API_docs_v97/methods/channels_deleteMessages.md
index f76a9ad1..463ebad0 100644
--- a/old_docs/API_docs_v97/methods/channels_deleteMessages.md
+++ b/old_docs/API_docs_v97/methods/channels_deleteMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_AffectedMessages = channels.deleteMessages({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v97/methods/channels_deleteUserHistory.md b/old_docs/API_docs_v97/methods/channels_deleteUserHistory.md
index 0a4e7d82..33905a7e 100644
--- a/old_docs/API_docs_v97/methods/channels_deleteUserHistory.md
+++ b/old_docs/API_docs_v97/methods/channels_deleteUserHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedHistory = channels.deleteUserHistory({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v97/methods/channels_editAdmin.md b/old_docs/API_docs_v97/methods/channels_editAdmin.md
index 2ea10cf0..5f311714 100644
--- a/old_docs/API_docs_v97/methods/channels_editAdmin.md
+++ b/old_docs/API_docs_v97/methods/channels_editAdmin.md
@@ -44,19 +44,19 @@ Or, if you're into Lua:
Updates = channels.editAdmin({channel=InputChannel, user_id=InputUser, admin_rights=ChatAdminRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ADMINS_TOO_MUCH|There are too many admins|
-|BOT_CHANNELS_NA|Bots can't edit admin privileges|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
-|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ADMINS_TOO_MUCH|There are too many admins|
+|400|BOT_CHANNELS_NA|Bots can't edit admin privileges|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|CHAT_ADMIN_INVITE_REQUIRED|You do not have the rights to do this|
+|403|RIGHT_FORBIDDEN|Your admin rights do not allow you to do this|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v97/methods/channels_editBanned.md b/old_docs/API_docs_v97/methods/channels_editBanned.md
index 8b08ed22..b9f1b58a 100644
--- a/old_docs/API_docs_v97/methods/channels_editBanned.md
+++ b/old_docs/API_docs_v97/methods/channels_editBanned.md
@@ -44,14 +44,14 @@ Or, if you're into Lua:
Updates = channels.editBanned({channel=InputChannel, user_id=InputUser, banned_rights=ChatBannedRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ADMIN_INVALID|You're not an admin|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ADMIN_INVALID|You're not an admin|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v97/methods/channels_editPhoto.md b/old_docs/API_docs_v97/methods/channels_editPhoto.md
index bec0ba48..caef32d5 100644
--- a/old_docs/API_docs_v97/methods/channels_editPhoto.md
+++ b/old_docs/API_docs_v97/methods/channels_editPhoto.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editPhoto({channel=InputChannel, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|PHOTO_INVALID|Photo invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|PHOTO_INVALID|Photo invalid|
diff --git a/old_docs/API_docs_v97/methods/channels_editTitle.md b/old_docs/API_docs_v97/methods/channels_editTitle.md
index b5efeb39..d7cb33da 100644
--- a/old_docs/API_docs_v97/methods/channels_editTitle.md
+++ b/old_docs/API_docs_v97/methods/channels_editTitle.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = channels.editTitle({channel=InputChannel, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_NOT_MODIFIED|The pinned message wasn't modified|
diff --git a/old_docs/API_docs_v97/methods/channels_exportMessageLink.md b/old_docs/API_docs_v97/methods/channels_exportMessageLink.md
index 5dea54a7..fc2f248b 100644
--- a/old_docs/API_docs_v97/methods/channels_exportMessageLink.md
+++ b/old_docs/API_docs_v97/methods/channels_exportMessageLink.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
ExportedMessageLink = channels.exportMessageLink({channel=InputChannel, id=int, grouped=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v97/methods/channels_getAdminLog.md b/old_docs/API_docs_v97/methods/channels_getAdminLog.md
index 377c7320..adb87748 100644
--- a/old_docs/API_docs_v97/methods/channels_getAdminLog.md
+++ b/old_docs/API_docs_v97/methods/channels_getAdminLog.md
@@ -48,12 +48,12 @@ Or, if you're into Lua:
channels_AdminLogResults = channels.getAdminLog({channel=InputChannel, q='string', events_filter=ChannelAdminLogEventsFilter, admins={InputUser}, max_id=long, min_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v97/methods/channels_getChannels.md b/old_docs/API_docs_v97/methods/channels_getChannels.md
index 78d50641..95d7a188 100644
--- a/old_docs/API_docs_v97/methods/channels_getChannels.md
+++ b/old_docs/API_docs_v97/methods/channels_getChannels.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = channels.getChannels({id={InputChannel}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v97/methods/channels_getFullChannel.md b/old_docs/API_docs_v97/methods/channels_getFullChannel.md
index 45a8ec72..ebd53de4 100644
--- a/old_docs/API_docs_v97/methods/channels_getFullChannel.md
+++ b/old_docs/API_docs_v97/methods/channels_getFullChannel.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->channels->getFullChannel(['channel' => InputChannel, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = channels.getFullChannel({channel=InputChannel, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v97/methods/channels_getLeftChannels.md b/old_docs/API_docs_v97/methods/channels_getLeftChannels.md
index 2d256964..fac7ae07 100644
--- a/old_docs/API_docs_v97/methods/channels_getLeftChannels.md
+++ b/old_docs/API_docs_v97/methods/channels_getLeftChannels.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_Chats = channels.getLeftChannels({offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TAKEOUT_REQUIRED|A takeout session has to be initialized, first|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|TAKEOUT_REQUIRED|A takeout session has to be initialized, first|
diff --git a/old_docs/API_docs_v97/methods/channels_getMessages.md b/old_docs/API_docs_v97/methods/channels_getMessages.md
index 90cf5a47..f1ae0a4d 100644
--- a/old_docs/API_docs_v97/methods/channels_getMessages.md
+++ b/old_docs/API_docs_v97/methods/channels_getMessages.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
messages_Messages = channels.getMessages({channel=InputChannel, id={InputMessage}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
diff --git a/old_docs/API_docs_v97/methods/channels_getParticipant.md b/old_docs/API_docs_v97/methods/channels_getParticipant.md
index 6633114f..808156fd 100644
--- a/old_docs/API_docs_v97/methods/channels_getParticipant.md
+++ b/old_docs/API_docs_v97/methods/channels_getParticipant.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
channels_ChannelParticipant = channels.getParticipant({channel=InputChannel, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v97/methods/channels_getParticipants.md b/old_docs/API_docs_v97/methods/channels_getParticipants.md
index 5ff242e6..fb7a39df 100644
--- a/old_docs/API_docs_v97/methods/channels_getParticipants.md
+++ b/old_docs/API_docs_v97/methods/channels_getParticipants.md
@@ -46,14 +46,14 @@ Or, if you're into Lua:
channels_ChannelParticipants = channels.getParticipants({channel=InputChannel, filter=ChannelParticipantsFilter, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v97/methods/channels_inviteToChannel.md b/old_docs/API_docs_v97/methods/channels_inviteToChannel.md
index f7093f13..d8c5e88a 100644
--- a/old_docs/API_docs_v97/methods/channels_inviteToChannel.md
+++ b/old_docs/API_docs_v97/methods/channels_inviteToChannel.md
@@ -43,25 +43,25 @@ Or, if you're into Lua:
Updates = channels.inviteToChannel({channel=InputChannel, users={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
-|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_BLOCKED|User blocked|
-|USER_BOT|Bots can only be admins in channels.|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USER_KICKED|This user was kicked from this supergroup/channel|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_GROUPS_BLOCKED|This bot can't be added to groups|
+|400|BOTS_TOO_MUCH|There are too many bots in this chat/channel|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_BLOCKED|User blocked|
+|400|USER_BOT|Bots can only be admins in channels.|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USER_KICKED|This user was kicked from this supergroup/channel|
+|400|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|USER_CHANNELS_TOO_MUCH|One of the users you tried to add is already in too many channels/supergroups|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v97/methods/channels_joinChannel.md b/old_docs/API_docs_v97/methods/channels_joinChannel.md
index b056031a..a4a7c177 100644
--- a/old_docs/API_docs_v97/methods/channels_joinChannel.md
+++ b/old_docs/API_docs_v97/methods/channels_joinChannel.md
@@ -42,15 +42,15 @@ Or, if you're into Lua:
Updates = channels.joinChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
diff --git a/old_docs/API_docs_v97/methods/channels_leaveChannel.md b/old_docs/API_docs_v97/methods/channels_leaveChannel.md
index fdea13ba..6538d443 100644
--- a/old_docs/API_docs_v97/methods/channels_leaveChannel.md
+++ b/old_docs/API_docs_v97/methods/channels_leaveChannel.md
@@ -42,14 +42,14 @@ Or, if you're into Lua:
Updates = channels.leaveChannel({channel=InputChannel, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|USER_CREATOR|You can't leave this channel, because you're its creator|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
-|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|USER_CREATOR|You can't leave this channel, because you're its creator|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
diff --git a/old_docs/API_docs_v97/methods/channels_readHistory.md b/old_docs/API_docs_v97/methods/channels_readHistory.md
index 93dc075f..3532dae0 100644
--- a/old_docs/API_docs_v97/methods/channels_readHistory.md
+++ b/old_docs/API_docs_v97/methods/channels_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readHistory({channel=InputChannel, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v97/methods/channels_readMessageContents.md b/old_docs/API_docs_v97/methods/channels_readMessageContents.md
index 80ddf2b0..8cd8c620 100644
--- a/old_docs/API_docs_v97/methods/channels_readMessageContents.md
+++ b/old_docs/API_docs_v97/methods/channels_readMessageContents.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.readMessageContents({channel=InputChannel, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
diff --git a/old_docs/API_docs_v97/methods/channels_reportSpam.md b/old_docs/API_docs_v97/methods/channels_reportSpam.md
index db80676a..7e273cc5 100644
--- a/old_docs/API_docs_v97/methods/channels_reportSpam.md
+++ b/old_docs/API_docs_v97/methods/channels_reportSpam.md
@@ -44,11 +44,11 @@ Or, if you're into Lua:
Bool = channels.reportSpam({channel=InputChannel, user_id=InputUser, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
diff --git a/old_docs/API_docs_v97/methods/channels_setStickers.md b/old_docs/API_docs_v97/methods/channels_setStickers.md
index 10cd68bf..c9b95527 100644
--- a/old_docs/API_docs_v97/methods/channels_setStickers.md
+++ b/old_docs/API_docs_v97/methods/channels_setStickers.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = channels.setStickers({channel=InputChannel, stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PARTICIPANTS_TOO_FEW|Not enough participants|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PARTICIPANTS_TOO_FEW|Not enough participants|
diff --git a/old_docs/API_docs_v97/methods/channels_toggleSignatures.md b/old_docs/API_docs_v97/methods/channels_toggleSignatures.md
index cdfc0fda..f8624946 100644
--- a/old_docs/API_docs_v97/methods/channels_toggleSignatures.md
+++ b/old_docs/API_docs_v97/methods/channels_toggleSignatures.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = channels.toggleSignatures({channel=InputChannel, enabled=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
diff --git a/old_docs/API_docs_v97/methods/channels_updateUsername.md b/old_docs/API_docs_v97/methods/channels_updateUsername.md
index 677712f9..48d250e6 100644
--- a/old_docs/API_docs_v97/methods/channels_updateUsername.md
+++ b/old_docs/API_docs_v97/methods/channels_updateUsername.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Bool = channels.updateUsername({channel=InputChannel, username='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|USERNAME_INVALID|The provided username is not valid|
-|USERNAME_OCCUPIED|The provided username is already occupied|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNELS_ADMIN_PUBLIC_TOO_MUCH|You're admin of too many public channels, make some channels private to change the username of this channel|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_OCCUPIED|The provided username is already occupied|
diff --git a/old_docs/API_docs_v97/methods/contacts_block.md b/old_docs/API_docs_v97/methods/contacts_block.md
index adbbf6d9..8a850811 100644
--- a/old_docs/API_docs_v97/methods/contacts_block.md
+++ b/old_docs/API_docs_v97/methods/contacts_block.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.block({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v97/methods/contacts_deleteContact.md b/old_docs/API_docs_v97/methods/contacts_deleteContact.md
index ba9569e4..a9321d64 100644
--- a/old_docs/API_docs_v97/methods/contacts_deleteContact.md
+++ b/old_docs/API_docs_v97/methods/contacts_deleteContact.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
contacts_Link = contacts.deleteContact({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v97/methods/contacts_deleteContacts.md b/old_docs/API_docs_v97/methods/contacts_deleteContacts.md
index bfc91fdd..3c8e90f0 100644
--- a/old_docs/API_docs_v97/methods/contacts_deleteContacts.md
+++ b/old_docs/API_docs_v97/methods/contacts_deleteContacts.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.deleteContacts({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v97/methods/contacts_getStatuses.md b/old_docs/API_docs_v97/methods/contacts_getStatuses.md
index 92fadc43..c66599c4 100644
--- a/old_docs/API_docs_v97/methods/contacts_getStatuses.md
+++ b/old_docs/API_docs_v97/methods/contacts_getStatuses.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
Vector_of_ContactStatus = contacts.getStatuses({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v97/methods/contacts_getTopPeers.md b/old_docs/API_docs_v97/methods/contacts_getTopPeers.md
index 4dc13d08..9ad9ab01 100644
--- a/old_docs/API_docs_v97/methods/contacts_getTopPeers.md
+++ b/old_docs/API_docs_v97/methods/contacts_getTopPeers.md
@@ -50,10 +50,10 @@ Or, if you're into Lua:
contacts_TopPeers = contacts.getTopPeers({correspondents=Bool, bots_pm=Bool, bots_inline=Bool, phone_calls=Bool, groups=Bool, channels=Bool, offset=int, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|TYPES_EMPTY|No top peer type was provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|TYPES_EMPTY|No top peer type was provided|
diff --git a/old_docs/API_docs_v97/methods/contacts_resetTopPeerRating.md b/old_docs/API_docs_v97/methods/contacts_resetTopPeerRating.md
index 43cf1685..787be177 100644
--- a/old_docs/API_docs_v97/methods/contacts_resetTopPeerRating.md
+++ b/old_docs/API_docs_v97/methods/contacts_resetTopPeerRating.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = contacts.resetTopPeerRating({category=TopPeerCategory, peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v97/methods/contacts_resolveUsername.md b/old_docs/API_docs_v97/methods/contacts_resolveUsername.md
index fab56bb1..68f709db 100644
--- a/old_docs/API_docs_v97/methods/contacts_resolveUsername.md
+++ b/old_docs/API_docs_v97/methods/contacts_resolveUsername.md
@@ -7,8 +7,48 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|username|[string](../types/string.md) | You cannot use this method directly, use the resolve_username, get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Yes|
+### Return type: [contacts\_ResolvedPeer](../types/contacts_ResolvedPeer.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$contacts_ResolvedPeer = $MadelineProto->contacts->resolveUsername(['username' => 'string', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+contacts_ResolvedPeer = contacts.resolveUsername({username='string', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERNAME_INVALID|The provided username is not valid|
+|400|USERNAME_NOT_OCCUPIED|The provided username is not occupied|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v97/methods/contacts_search.md b/old_docs/API_docs_v97/methods/contacts_search.md
index 88434751..19c8baed 100644
--- a/old_docs/API_docs_v97/methods/contacts_search.md
+++ b/old_docs/API_docs_v97/methods/contacts_search.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
contacts_Found = contacts.search({q='string', limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_TOO_SHORT|The query string is too short|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_TOO_SHORT|The query string is too short|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v97/methods/contacts_unblock.md b/old_docs/API_docs_v97/methods/contacts_unblock.md
index f12eab5a..aa61ffd5 100644
--- a/old_docs/API_docs_v97/methods/contacts_unblock.md
+++ b/old_docs/API_docs_v97/methods/contacts_unblock.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = contacts.unblock({id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONTACT_ID_INVALID|The provided contact ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONTACT_ID_INVALID|The provided contact ID is invalid|
diff --git a/old_docs/API_docs_v97/methods/help_getCdnConfig.md b/old_docs/API_docs_v97/methods/help_getCdnConfig.md
index 9e047a1d..ba526365 100644
--- a/old_docs/API_docs_v97/methods/help_getCdnConfig.md
+++ b/old_docs/API_docs_v97/methods/help_getCdnConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
CdnConfig = help.getCdnConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v97/methods/help_getConfig.md b/old_docs/API_docs_v97/methods/help_getConfig.md
index f9015504..3eeb9071 100644
--- a/old_docs/API_docs_v97/methods/help_getConfig.md
+++ b/old_docs/API_docs_v97/methods/help_getConfig.md
@@ -37,12 +37,12 @@ Or, if you're into Lua:
Config = help.getConfig({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v97/methods/initConnection.md b/old_docs/API_docs_v97/methods/initConnection.md
index 69d29401..5c4bfab9 100644
--- a/old_docs/API_docs_v97/methods/initConnection.md
+++ b/old_docs/API_docs_v97/methods/initConnection.md
@@ -50,11 +50,11 @@ Or, if you're into Lua:
X = initConnection({api_id=int, device_model='string', system_version='string', app_version='string', system_lang_code='string', lang_pack='string', lang_code='string', proxy=InputClientProxy, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CONNECTION_LAYER_INVALID|Layer invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CONNECTION_LAYER_INVALID|Layer invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
diff --git a/old_docs/API_docs_v97/methods/invokeWithLayer.md b/old_docs/API_docs_v97/methods/invokeWithLayer.md
index ddd70987..24dea3bb 100644
--- a/old_docs/API_docs_v97/methods/invokeWithLayer.md
+++ b/old_docs/API_docs_v97/methods/invokeWithLayer.md
@@ -43,21 +43,21 @@ Or, if you're into Lua:
X = invokeWithLayer({layer=int, query=!X, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_BYTES_INVALID|The provided authorization is invalid|
-|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
-|CONNECTION_API_ID_INVALID|The provided API id is invalid|
-|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
-|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
-|CONNECTION_NOT_INITED|Connection not initialized|
-|CONNECTION_SYSTEM_EMPTY|Connection system empty|
-|INPUT_LAYER_INVALID|The provided layer is invalid|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|AUTH_BYTES_INVALID|The provided authorization is invalid|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|CONNECTION_API_ID_INVALID|The provided API id is invalid|
+|400|CONNECTION_DEVICE_MODEL_EMPTY|Device model empty|
+|400|CONNECTION_LANG_PACK_INVALID|Language pack invalid|
+|400|CONNECTION_NOT_INITED|Connection not initialized|
+|400|CONNECTION_SYSTEM_EMPTY|Connection system empty|
+|400|INPUT_LAYER_INVALID|The provided layer is invalid|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v97/methods/langpack_getDifference.md b/old_docs/API_docs_v97/methods/langpack_getDifference.md
index 712d88f4..6995c17d 100644
--- a/old_docs/API_docs_v97/methods/langpack_getDifference.md
+++ b/old_docs/API_docs_v97/methods/langpack_getDifference.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getDifference({lang_pack='string', lang_code='string', from_version=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v97/methods/langpack_getLangPack.md b/old_docs/API_docs_v97/methods/langpack_getLangPack.md
index 55d30529..d2280670 100644
--- a/old_docs/API_docs_v97/methods/langpack_getLangPack.md
+++ b/old_docs/API_docs_v97/methods/langpack_getLangPack.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
LangPackDifference = langpack.getLangPack({lang_pack='string', lang_code='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v97/methods/langpack_getLanguages.md b/old_docs/API_docs_v97/methods/langpack_getLanguages.md
index d4b9734e..686a50f5 100644
--- a/old_docs/API_docs_v97/methods/langpack_getLanguages.md
+++ b/old_docs/API_docs_v97/methods/langpack_getLanguages.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Vector_of_LangPackLanguage = langpack.getLanguages({lang_pack='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v97/methods/langpack_getStrings.md b/old_docs/API_docs_v97/methods/langpack_getStrings.md
index 65f65dfc..f0463eed 100644
--- a/old_docs/API_docs_v97/methods/langpack_getStrings.md
+++ b/old_docs/API_docs_v97/methods/langpack_getStrings.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Vector_of_LangPackString = langpack.getStrings({lang_pack='string', lang_code='string', keys={'string'}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LANG_PACK_INVALID|The provided language pack is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LANG_PACK_INVALID|The provided language pack is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_acceptEncryption.md b/old_docs/API_docs_v97/methods/messages_acceptEncryption.md
index 26d28676..134bfa8e 100644
--- a/old_docs/API_docs_v97/methods/messages_acceptEncryption.md
+++ b/old_docs/API_docs_v97/methods/messages_acceptEncryption.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[Secret chat ID, Update, EncryptedMessage or InputEncryptedChat](../types/InputEncryptedChat.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->acceptEncryption(['peer' => InputEncryptedChat, 'g_b' => 'bytes', 'key_fingerprint' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.acceptEncryption({peer=InputEncryptedChat, g_b='bytes', key_fingerprint=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|ENCRYPTION_ALREADY_ACCEPTED|Secret chat already accepted|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
diff --git a/old_docs/API_docs_v97/methods/messages_addChatUser.md b/old_docs/API_docs_v97/methods/messages_addChatUser.md
index bc0d6253..b5e164b2 100644
--- a/old_docs/API_docs_v97/methods/messages_addChatUser.md
+++ b/old_docs/API_docs_v97/methods/messages_addChatUser.md
@@ -44,18 +44,18 @@ Or, if you're into Lua:
Updates = messages.addChatUser({chat_id=InputPeer, user_id=InputUser, fwd_limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USER_ID_INVALID|The provided user ID is invalid|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
-|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|403|USER_NOT_MUTUAL_CONTACT|The provided user is not a mutual contact|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v97/methods/messages_checkChatInvite.md b/old_docs/API_docs_v97/methods/messages_checkChatInvite.md
index de28b09b..0d13d55e 100644
--- a/old_docs/API_docs_v97/methods/messages_checkChatInvite.md
+++ b/old_docs/API_docs_v97/methods/messages_checkChatInvite.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
ChatInvite = messages.checkChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_createChat.md b/old_docs/API_docs_v97/methods/messages_createChat.md
index 8f6e9672..b2623f1d 100644
--- a/old_docs/API_docs_v97/methods/messages_createChat.md
+++ b/old_docs/API_docs_v97/methods/messages_createChat.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.createChat({users={InputUser}, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
-|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USERS_TOO_FEW|Not enough users (to create a chat, for example)|
+|403|USER_RESTRICTED|You're spamreported, you can't create channels or chats.|
diff --git a/old_docs/API_docs_v97/methods/messages_deleteChatUser.md b/old_docs/API_docs_v97/methods/messages_deleteChatUser.md
index 63529571..11b9b220 100644
--- a/old_docs/API_docs_v97/methods/messages_deleteChatUser.md
+++ b/old_docs/API_docs_v97/methods/messages_deleteChatUser.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
Updates = messages.deleteChatUser({chat_id=InputPeer, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_NOT_PARTICIPANT|You're not a member of this supergroup/channel|
diff --git a/old_docs/API_docs_v97/methods/messages_deleteHistory.md b/old_docs/API_docs_v97/methods/messages_deleteHistory.md
index faddfda5..5a38e404 100644
--- a/old_docs/API_docs_v97/methods/messages_deleteHistory.md
+++ b/old_docs/API_docs_v97/methods/messages_deleteHistory.md
@@ -45,10 +45,10 @@ Or, if you're into Lua:
messages_AffectedHistory = messages.deleteHistory({just_clear=Bool, revoke=Bool, peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_deleteMessages.md b/old_docs/API_docs_v97/methods/messages_deleteMessages.md
index 4c65080a..41517dd0 100644
--- a/old_docs/API_docs_v97/methods/messages_deleteMessages.md
+++ b/old_docs/API_docs_v97/methods/messages_deleteMessages.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.deleteMessages({revoke=Bool, id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
+| Code | Type | Description |
+|------|----------|---------------|
+|403|MESSAGE_DELETE_FORBIDDEN|You can't delete one of the messages you tried to delete, most likely because it is a service message.|
diff --git a/old_docs/API_docs_v97/methods/messages_discardEncryption.md b/old_docs/API_docs_v97/methods/messages_discardEncryption.md
index f3689dd0..5198bc3e 100644
--- a/old_docs/API_docs_v97/methods/messages_discardEncryption.md
+++ b/old_docs/API_docs_v97/methods/messages_discardEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->messages->discardEncryption(['chat_id' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = messages.discardEncryption({chat_id=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_EMPTY|The provided chat ID is empty|
+|400|ENCRYPTION_ALREADY_DECLINED|The secret chat was already declined|
+|400|ENCRYPTION_ID_INVALID|The provided secret chat ID is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_editChatAbout.md b/old_docs/API_docs_v97/methods/messages_editChatAbout.md
index 6c562c12..05fff24f 100644
--- a/old_docs/API_docs_v97/methods/messages_editChatAbout.md
+++ b/old_docs/API_docs_v97/methods/messages_editChatAbout.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.editChatAbout({peer=InputPeer, about='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_editChatAdmin.md b/old_docs/API_docs_v97/methods/messages_editChatAdmin.md
index 2b4dc94c..6f6c1376 100644
--- a/old_docs/API_docs_v97/methods/messages_editChatAdmin.md
+++ b/old_docs/API_docs_v97/methods/messages_editChatAdmin.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.editChatAdmin({chat_id=InputPeer, user_id=InputUser, is_admin=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_editChatDefaultBannedRights.md b/old_docs/API_docs_v97/methods/messages_editChatDefaultBannedRights.md
index 30e7836e..a8e075eb 100644
--- a/old_docs/API_docs_v97/methods/messages_editChatDefaultBannedRights.md
+++ b/old_docs/API_docs_v97/methods/messages_editChatDefaultBannedRights.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatDefaultBannedRights({peer=InputPeer, banned_rights=ChatBannedRights, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BANNED_RIGHTS_INVALID|You provided some invalid flags in the banned rights|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BANNED_RIGHTS_INVALID|You provided some invalid flags in the banned rights|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_editChatPhoto.md b/old_docs/API_docs_v97/methods/messages_editChatPhoto.md
index 2a82c232..a21a03b9 100644
--- a/old_docs/API_docs_v97/methods/messages_editChatPhoto.md
+++ b/old_docs/API_docs_v97/methods/messages_editChatPhoto.md
@@ -43,14 +43,14 @@ Or, if you're into Lua:
Updates = messages.editChatPhoto({chat_id=InputPeer, photo=InputChatPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_FETCH_FAIL|Failed deserializing TL payload|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_editChatTitle.md b/old_docs/API_docs_v97/methods/messages_editChatTitle.md
index 2c338ad6..72f78741 100644
--- a/old_docs/API_docs_v97/methods/messages_editChatTitle.md
+++ b/old_docs/API_docs_v97/methods/messages_editChatTitle.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Updates = messages.editChatTitle({chat_id=InputPeer, title='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_TITLE_EMPTY|No chat title provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_TITLE_EMPTY|No chat title provided|
diff --git a/old_docs/API_docs_v97/methods/messages_editInlineBotMessage.md b/old_docs/API_docs_v97/methods/messages_editInlineBotMessage.md
index 67313f15..5f7a31c9 100644
--- a/old_docs/API_docs_v97/methods/messages_editInlineBotMessage.md
+++ b/old_docs/API_docs_v97/methods/messages_editInlineBotMessage.md
@@ -96,11 +96,11 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
diff --git a/old_docs/API_docs_v97/methods/messages_editMessage.md b/old_docs/API_docs_v97/methods/messages_editMessage.md
index 720f4285..d394d1aa 100644
--- a/old_docs/API_docs_v97/methods/messages_editMessage.md
+++ b/old_docs/API_docs_v97/methods/messages_editMessage.md
@@ -97,20 +97,20 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_NOT_MODIFIED|The message text has not changed|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EDIT_TIME_EXPIRED|You can't edit this message anymore, too much time has passed since its creation.|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_NOT_MODIFIED|The message text has not changed|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v97/methods/messages_exportChatInvite.md b/old_docs/API_docs_v97/methods/messages_exportChatInvite.md
index 9028d4cd..c78d7fb9 100644
--- a/old_docs/API_docs_v97/methods/messages_exportChatInvite.md
+++ b/old_docs/API_docs_v97/methods/messages_exportChatInvite.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
ExportedChatInvite = messages.exportChatInvite({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_faveSticker.md b/old_docs/API_docs_v97/methods/messages_faveSticker.md
index a8b1ab56..9f9f423d 100644
--- a/old_docs/API_docs_v97/methods/messages_faveSticker.md
+++ b/old_docs/API_docs_v97/methods/messages_faveSticker.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.faveSticker({id=InputDocument, unfave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_forwardMessages.md b/old_docs/API_docs_v97/methods/messages_forwardMessages.md
index d2453d05..743fa7a6 100644
--- a/old_docs/API_docs_v97/methods/messages_forwardMessages.md
+++ b/old_docs/API_docs_v97/methods/messages_forwardMessages.md
@@ -48,29 +48,29 @@ Or, if you're into Lua:
Updates = messages.forwardMessages({silent=Bool, background=Bool, with_my_score=Bool, grouped=Bool, from_peer=InputPeer, id={int}, to_peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|GROUPED_MEDIA_INVALID|Invalid grouped media|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|MESSAGE_IDS_EMPTY|No message ids were provided|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|RANDOM_ID_INVALID|A provided random ID is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|GROUPED_MEDIA_INVALID|Invalid grouped media|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|MESSAGE_IDS_EMPTY|No message ids were provided|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|RANDOM_ID_INVALID|A provided random ID is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|403|CHAT_SEND_GIFS_FORBIDDEN|You can't send gifs in this chat|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_SEND_STICKERS_FORBIDDEN|You can't send stickers in this chat.|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v97/methods/messages_getBotCallbackAnswer.md b/old_docs/API_docs_v97/methods/messages_getBotCallbackAnswer.md
index f97fa5b0..3f8cc23b 100644
--- a/old_docs/API_docs_v97/methods/messages_getBotCallbackAnswer.md
+++ b/old_docs/API_docs_v97/methods/messages_getBotCallbackAnswer.md
@@ -45,14 +45,14 @@ Or, if you're into Lua:
messages_BotCallbackAnswer = messages.getBotCallbackAnswer({game=Bool, peer=InputPeer, msg_id=int, data='bytes', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v97/methods/messages_getChats.md b/old_docs/API_docs_v97/methods/messages_getChats.md
index 52aeb68b..2ca7df9b 100644
--- a/old_docs/API_docs_v97/methods/messages_getChats.md
+++ b/old_docs/API_docs_v97/methods/messages_getChats.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_Chats = messages.getChats({id={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_getCommonChats.md b/old_docs/API_docs_v97/methods/messages_getCommonChats.md
index 9470a0ee..cff23c3f 100644
--- a/old_docs/API_docs_v97/methods/messages_getCommonChats.md
+++ b/old_docs/API_docs_v97/methods/messages_getCommonChats.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
messages_Chats = messages.getCommonChats({user_id=InputUser, max_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_getDhConfig.md b/old_docs/API_docs_v97/methods/messages_getDhConfig.md
index ea48a8f1..b3146650 100644
--- a/old_docs/API_docs_v97/methods/messages_getDhConfig.md
+++ b/old_docs/API_docs_v97/methods/messages_getDhConfig.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, instead use $MadelineProto->get_dh_config();**
+You cannot use this method directly, instead use $MadelineProto->get_dh_config();
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|version|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+|random\_length|[int](../types/int.md) | You cannot use this method directly, instead use $MadelineProto->get_dh_config(); | Yes|
+### Return type: [messages\_DhConfig](../types/messages_DhConfig.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_DhConfig = $MadelineProto->messages->getDhConfig(['version' => int, 'random_length' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_DhConfig = messages.getDhConfig({version=int, random_length=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RANDOM_LENGTH_INVALID|Random length invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_getDialogs.md b/old_docs/API_docs_v97/methods/messages_getDialogs.md
index 5d5a75ff..da3efe36 100644
--- a/old_docs/API_docs_v97/methods/messages_getDialogs.md
+++ b/old_docs/API_docs_v97/methods/messages_getDialogs.md
@@ -47,13 +47,13 @@ Or, if you're into Lua:
messages_Dialogs = messages.getDialogs({exclude_pinned=Bool, offset_date=int, offset_id=int, offset_peer=InputPeer, limit=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|OFFSET_PEER_ID_INVALID|The provided offset peer is invalid|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v97/methods/messages_getDocumentByHash.md b/old_docs/API_docs_v97/methods/messages_getDocumentByHash.md
index 73a235d5..06469c52 100644
--- a/old_docs/API_docs_v97/methods/messages_getDocumentByHash.md
+++ b/old_docs/API_docs_v97/methods/messages_getDocumentByHash.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Document = messages.getDocumentByHash({sha256='bytes', size=int, mime_type='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SHA256_HASH_INVALID|The provided SHA256 hash is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_getFullChat.md b/old_docs/API_docs_v97/methods/messages_getFullChat.md
index 5ef14f65..e6830d12 100644
--- a/old_docs/API_docs_v97/methods/messages_getFullChat.md
+++ b/old_docs/API_docs_v97/methods/messages_getFullChat.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|chat\_id|[Username, chat ID, Update, Message or InputPeer](../types/InputPeer.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [messages\_ChatFull](../types/messages_ChatFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$messages_ChatFull = $MadelineProto->messages->getFullChat(['chat_id' => InputPeer, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+messages_ChatFull = messages.getFullChat({chat_id=InputPeer, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_getGameHighScores.md b/old_docs/API_docs_v97/methods/messages_getGameHighScores.md
index 249e1d09..5c484bbb 100644
--- a/old_docs/API_docs_v97/methods/messages_getGameHighScores.md
+++ b/old_docs/API_docs_v97/methods/messages_getGameHighScores.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
messages_HighScores = messages.getGameHighScores({peer=InputPeer, id=int, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v97/methods/messages_getHistory.md b/old_docs/API_docs_v97/methods/messages_getHistory.md
index d623a61e..a0389d7b 100644
--- a/old_docs/API_docs_v97/methods/messages_getHistory.md
+++ b/old_docs/API_docs_v97/methods/messages_getHistory.md
@@ -49,16 +49,16 @@ Or, if you're into Lua:
messages_Messages = messages.getHistory({peer=InputPeer, offset_id=int, offset_date=int, add_offset=int, limit=int, max_id=int, min_id=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v97/methods/messages_getInlineBotResults.md b/old_docs/API_docs_v97/methods/messages_getInlineBotResults.md
index 1efcb412..17d678b7 100644
--- a/old_docs/API_docs_v97/methods/messages_getInlineBotResults.md
+++ b/old_docs/API_docs_v97/methods/messages_getInlineBotResults.md
@@ -46,13 +46,13 @@ Or, if you're into Lua:
messages_BotResults = messages.getInlineBotResults({bot=InputUser, peer=InputPeer, geo_point=InputGeoPoint, query='string', offset='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
-|BOT_INVALID|This is not a valid bot|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INLINE_DISABLED|This bot can't be used in inline mode|
+|400|BOT_INVALID|This is not a valid bot|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v97/methods/messages_getInlineGameHighScores.md b/old_docs/API_docs_v97/methods/messages_getInlineGameHighScores.md
index e68c6db8..ac33b6b8 100644
--- a/old_docs/API_docs_v97/methods/messages_getInlineGameHighScores.md
+++ b/old_docs/API_docs_v97/methods/messages_getInlineGameHighScores.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_HighScores = messages.getInlineGameHighScores({id=InputBotInlineMessageID, user_id=InputUser, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v97/methods/messages_getMessageEditData.md b/old_docs/API_docs_v97/methods/messages_getMessageEditData.md
index 7f1b7164..b907d78c 100644
--- a/old_docs/API_docs_v97/methods/messages_getMessageEditData.md
+++ b/old_docs/API_docs_v97/methods/messages_getMessageEditData.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_MessageEditData = messages.getMessageEditData({peer=InputPeer, id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|MESSAGE_AUTHOR_REQUIRED|Message author required|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|MESSAGE_AUTHOR_REQUIRED|Message author required|
diff --git a/old_docs/API_docs_v97/methods/messages_getMessagesViews.md b/old_docs/API_docs_v97/methods/messages_getMessagesViews.md
index 3d490315..143e568c 100644
--- a/old_docs/API_docs_v97/methods/messages_getMessagesViews.md
+++ b/old_docs/API_docs_v97/methods/messages_getMessagesViews.md
@@ -44,12 +44,12 @@ Or, if you're into Lua:
Vector_of_int = messages.getMessagesViews({peer=InputPeer, id={int}, increment=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_getPeerDialogs.md b/old_docs/API_docs_v97/methods/messages_getPeerDialogs.md
index 02eb9b43..17e0d11e 100644
--- a/old_docs/API_docs_v97/methods/messages_getPeerDialogs.md
+++ b/old_docs/API_docs_v97/methods/messages_getPeerDialogs.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPeerDialogs({peers={InputDialogPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_getPeerSettings.md b/old_docs/API_docs_v97/methods/messages_getPeerSettings.md
index 26dafb9b..69032ff5 100644
--- a/old_docs/API_docs_v97/methods/messages_getPeerSettings.md
+++ b/old_docs/API_docs_v97/methods/messages_getPeerSettings.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
PeerSettings = messages.getPeerSettings({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_getPinnedDialogs.md b/old_docs/API_docs_v97/methods/messages_getPinnedDialogs.md
index 828d622e..f106098d 100644
--- a/old_docs/API_docs_v97/methods/messages_getPinnedDialogs.md
+++ b/old_docs/API_docs_v97/methods/messages_getPinnedDialogs.md
@@ -37,10 +37,10 @@ Or, if you're into Lua:
messages_PeerDialogs = messages.getPinnedDialogs({})
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FOLDER_ID_INVALID|Invalid folder ID|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FOLDER_ID_INVALID|Invalid folder ID|
diff --git a/old_docs/API_docs_v97/methods/messages_getStatsURL.md b/old_docs/API_docs_v97/methods/messages_getStatsURL.md
index 4f7c08d9..f0c44447 100644
--- a/old_docs/API_docs_v97/methods/messages_getStatsURL.md
+++ b/old_docs/API_docs_v97/methods/messages_getStatsURL.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
StatsURL = messages.getStatsURL({dark=Bool, peer=InputPeer, params='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_getStickerSet.md b/old_docs/API_docs_v97/methods/messages_getStickerSet.md
index 57bce84d..487316cc 100644
--- a/old_docs/API_docs_v97/methods/messages_getStickerSet.md
+++ b/old_docs/API_docs_v97/methods/messages_getStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
messages_StickerSet = messages.getStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_getUnreadMentions.md b/old_docs/API_docs_v97/methods/messages_getUnreadMentions.md
index 1fa1f269..923229eb 100644
--- a/old_docs/API_docs_v97/methods/messages_getUnreadMentions.md
+++ b/old_docs/API_docs_v97/methods/messages_getUnreadMentions.md
@@ -47,10 +47,10 @@ Or, if you're into Lua:
messages_Messages = messages.getUnreadMentions({peer=InputPeer, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_getWebPage.md b/old_docs/API_docs_v97/methods/messages_getWebPage.md
index ce51ff41..63ef5e93 100644
--- a/old_docs/API_docs_v97/methods/messages_getWebPage.md
+++ b/old_docs/API_docs_v97/methods/messages_getWebPage.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
WebPage = messages.getWebPage({url='string', hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|WC_CONVERT_URL_INVALID|WC convert URL invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|WC_CONVERT_URL_INVALID|WC convert URL invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_hideReportSpam.md b/old_docs/API_docs_v97/methods/messages_hideReportSpam.md
index c4bf7399..57756d2e 100644
--- a/old_docs/API_docs_v97/methods/messages_hideReportSpam.md
+++ b/old_docs/API_docs_v97/methods/messages_hideReportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.hideReportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_importChatInvite.md b/old_docs/API_docs_v97/methods/messages_importChatInvite.md
index 12120867..101b4b19 100644
--- a/old_docs/API_docs_v97/methods/messages_importChatInvite.md
+++ b/old_docs/API_docs_v97/methods/messages_importChatInvite.md
@@ -42,16 +42,16 @@ Or, if you're into Lua:
Updates = messages.importChatInvite({hash='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
-|INVITE_HASH_EMPTY|The invite hash is empty|
-|INVITE_HASH_EXPIRED|The invite link has expired|
-|INVITE_HASH_INVALID|The invite hash is invalid|
-|USER_ALREADY_PARTICIPANT|The user is already in the group|
-|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNELS_TOO_MUCH|You have joined too many channels/supergroups|
+|400|INVITE_HASH_EMPTY|The invite hash is empty|
+|400|INVITE_HASH_EXPIRED|The invite link has expired|
+|400|INVITE_HASH_INVALID|The invite hash is invalid|
+|400|USER_ALREADY_PARTICIPANT|The user is already in the group|
+|400|USERS_TOO_MUCH|The maximum number of users has been exceeded (to create a chat, for example)|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v97/methods/messages_installStickerSet.md b/old_docs/API_docs_v97/methods/messages_installStickerSet.md
index 21a57a85..67f2aca0 100644
--- a/old_docs/API_docs_v97/methods/messages_installStickerSet.md
+++ b/old_docs/API_docs_v97/methods/messages_installStickerSet.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_StickerSetInstallResult = messages.installStickerSet({stickerset=InputStickerSet, archived=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_migrateChat.md b/old_docs/API_docs_v97/methods/messages_migrateChat.md
index a72f4c11..ee4010eb 100644
--- a/old_docs/API_docs_v97/methods/messages_migrateChat.md
+++ b/old_docs/API_docs_v97/methods/messages_migrateChat.md
@@ -42,12 +42,12 @@ Or, if you're into Lua:
Updates = messages.migrateChat({chat_id=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|403|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
diff --git a/old_docs/API_docs_v97/methods/messages_readEncryptedHistory.md b/old_docs/API_docs_v97/methods/messages_readEncryptedHistory.md
index 21f7c0d9..cd0c4ed7 100644
--- a/old_docs/API_docs_v97/methods/messages_readEncryptedHistory.md
+++ b/old_docs/API_docs_v97/methods/messages_readEncryptedHistory.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.readEncryptedHistory({peer=InputEncryptedChat, max_date=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v97/methods/messages_readHistory.md b/old_docs/API_docs_v97/methods/messages_readHistory.md
index 2ad5cd09..a7f0eca7 100644
--- a/old_docs/API_docs_v97/methods/messages_readHistory.md
+++ b/old_docs/API_docs_v97/methods/messages_readHistory.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_AffectedMessages = messages.readHistory({peer=InputPeer, max_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v97/methods/messages_receivedQueue.md b/old_docs/API_docs_v97/methods/messages_receivedQueue.md
index 97b1aae8..a466633f 100644
--- a/old_docs/API_docs_v97/methods/messages_receivedQueue.md
+++ b/old_docs/API_docs_v97/methods/messages_receivedQueue.md
@@ -7,8 +7,45 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly**
+You cannot use this method directly
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|max\_qts|[int](../types/int.md) | You cannot use this method directly | Yes|
+### Return type: [Vector\_of\_long](../types/long.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_long = $MadelineProto->messages->receivedQueue(['max_qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_long = messages.receivedQueue({max_qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v97/methods/messages_reorderPinnedDialogs.md b/old_docs/API_docs_v97/methods/messages_reorderPinnedDialogs.md
index 49aaca93..2452409a 100644
--- a/old_docs/API_docs_v97/methods/messages_reorderPinnedDialogs.md
+++ b/old_docs/API_docs_v97/methods/messages_reorderPinnedDialogs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.reorderPinnedDialogs({force=Bool, order={InputDialogPeer}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_reportEncryptedSpam.md b/old_docs/API_docs_v97/methods/messages_reportEncryptedSpam.md
index 9b1e868b..aeac27ef 100644
--- a/old_docs/API_docs_v97/methods/messages_reportEncryptedSpam.md
+++ b/old_docs/API_docs_v97/methods/messages_reportEncryptedSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportEncryptedSpam({peer=InputEncryptedChat, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_reportSpam.md b/old_docs/API_docs_v97/methods/messages_reportSpam.md
index e92fba13..dc256e55 100644
--- a/old_docs/API_docs_v97/methods/messages_reportSpam.md
+++ b/old_docs/API_docs_v97/methods/messages_reportSpam.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.reportSpam({peer=InputPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_requestEncryption.md b/old_docs/API_docs_v97/methods/messages_requestEncryption.md
index eccf45f3..e052591b 100644
--- a/old_docs/API_docs_v97/methods/messages_requestEncryption.md
+++ b/old_docs/API_docs_v97/methods/messages_requestEncryption.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Optional|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling secret chats | Yes|
+### Return type: [EncryptedChat](../types/EncryptedChat.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$EncryptedChat = $MadelineProto->messages->requestEncryption(['user_id' => InputUser, 'g_a' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+EncryptedChat = messages.requestEncryption({user_id=InputUser, g_a='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DH_G_A_INVALID|g_a invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_saveDraft.md b/old_docs/API_docs_v97/methods/messages_saveDraft.md
index 791ce234..ea6d407e 100644
--- a/old_docs/API_docs_v97/methods/messages_saveDraft.md
+++ b/old_docs/API_docs_v97/methods/messages_saveDraft.md
@@ -89,10 +89,10 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_saveGif.md b/old_docs/API_docs_v97/methods/messages_saveGif.md
index f504ff9e..010e17ec 100644
--- a/old_docs/API_docs_v97/methods/messages_saveGif.md
+++ b/old_docs/API_docs_v97/methods/messages_saveGif.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.saveGif({id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|GIF_ID_INVALID|The provided GIF ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|GIF_ID_INVALID|The provided GIF ID is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_saveRecentSticker.md b/old_docs/API_docs_v97/methods/messages_saveRecentSticker.md
index 98c74efd..072b6fe9 100644
--- a/old_docs/API_docs_v97/methods/messages_saveRecentSticker.md
+++ b/old_docs/API_docs_v97/methods/messages_saveRecentSticker.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.saveRecentSticker({attached=Bool, id=InputDocument, unsave=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKER_ID_INVALID|The provided sticker ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKER_ID_INVALID|The provided sticker ID is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_search.md b/old_docs/API_docs_v97/methods/messages_search.md
index 83cb34c6..07529b40 100644
--- a/old_docs/API_docs_v97/methods/messages_search.md
+++ b/old_docs/API_docs_v97/methods/messages_search.md
@@ -53,16 +53,16 @@ Or, if you're into Lua:
messages_Messages = messages.search({peer=InputPeer, q='string', from_id=InputUser, filter=MessagesFilter, min_date=int, max_date=int, offset_id=int, add_offset=int, limit=int, max_id=int, min_id=int, hash={int}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
-|SEARCH_QUERY_EMPTY|The search query is empty|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|INPUT_CONSTRUCTOR_INVALID|The provided constructor is invalid|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PEER_ID_NOT_SUPPORTED|The provided peer ID is not supported|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_searchGifs.md b/old_docs/API_docs_v97/methods/messages_searchGifs.md
index 7be4173b..1602d35e 100644
--- a/old_docs/API_docs_v97/methods/messages_searchGifs.md
+++ b/old_docs/API_docs_v97/methods/messages_searchGifs.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
messages_FoundGifs = messages.searchGifs({q='string', offset=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v97/methods/messages_searchGlobal.md b/old_docs/API_docs_v97/methods/messages_searchGlobal.md
index fb38398b..c8da163c 100644
--- a/old_docs/API_docs_v97/methods/messages_searchGlobal.md
+++ b/old_docs/API_docs_v97/methods/messages_searchGlobal.md
@@ -46,10 +46,10 @@ Or, if you're into Lua:
messages_Messages = messages.searchGlobal({q='string', offset_date=int, offset_peer=InputPeer, offset_id=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|SEARCH_QUERY_EMPTY|The search query is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|SEARCH_QUERY_EMPTY|The search query is empty|
diff --git a/old_docs/API_docs_v97/methods/messages_sendEncrypted.md b/old_docs/API_docs_v97/methods/messages_sendEncrypted.md
index eb48e5b8..d475a7f6 100644
--- a/old_docs/API_docs_v97/methods/messages_sendEncrypted.md
+++ b/old_docs/API_docs_v97/methods/messages_sendEncrypted.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncrypted({peer=InputEncryptedChat,
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v97/methods/messages_sendEncryptedFile.md b/old_docs/API_docs_v97/methods/messages_sendEncryptedFile.md
index 31036bae..49da9d72 100644
--- a/old_docs/API_docs_v97/methods/messages_sendEncryptedFile.md
+++ b/old_docs/API_docs_v97/methods/messages_sendEncryptedFile.md
@@ -50,10 +50,10 @@ messages_SentEncryptedMessage = messages.sendEncryptedFile({peer=InputEncryptedC
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MSG_WAIT_FAILED|A waiting call returned an error|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
diff --git a/old_docs/API_docs_v97/methods/messages_sendEncryptedService.md b/old_docs/API_docs_v97/methods/messages_sendEncryptedService.md
index 8b21251c..1398392c 100644
--- a/old_docs/API_docs_v97/methods/messages_sendEncryptedService.md
+++ b/old_docs/API_docs_v97/methods/messages_sendEncryptedService.md
@@ -49,13 +49,13 @@ messages_SentEncryptedMessage = messages.sendEncryptedService({peer=InputEncrypt
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [messages\_SentEncryptedMessage](../types/messages_SentEncryptedMessage.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|DATA_INVALID|Encrypted data invalid|
-|ENCRYPTION_DECLINED|The secret chat was declined|
-|MSG_WAIT_FAILED|A waiting call returned an error|
-|USER_IS_BLOCKED|You were blocked by this user|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|DATA_INVALID|Encrypted data invalid|
+|400|ENCRYPTION_DECLINED|The secret chat was declined|
+|400|MSG_WAIT_FAILED|A waiting call returned an error|
+|403|USER_IS_BLOCKED|You were blocked by this user|
diff --git a/old_docs/API_docs_v97/methods/messages_sendInlineBotResult.md b/old_docs/API_docs_v97/methods/messages_sendInlineBotResult.md
index 96d7571a..642ba34f 100644
--- a/old_docs/API_docs_v97/methods/messages_sendInlineBotResult.md
+++ b/old_docs/API_docs_v97/methods/messages_sendInlineBotResult.md
@@ -49,15 +49,15 @@ Or, if you're into Lua:
Updates = messages.sendInlineBotResult({silent=Bool, background=Bool, clear_draft=Bool, hide_via=Bool, peer=InputPeer, reply_to_msg_id=int, query_id=long, id='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|INLINE_RESULT_EXPIRED|The inline query expired|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|QUERY_ID_EMPTY|The query ID is empty|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|INLINE_RESULT_EXPIRED|The inline query expired|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|QUERY_ID_EMPTY|The query ID is empty|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v97/methods/messages_sendMedia.md b/old_docs/API_docs_v97/methods/messages_sendMedia.md
index 44c604c6..a2244583 100644
--- a/old_docs/API_docs_v97/methods/messages_sendMedia.md
+++ b/old_docs/API_docs_v97/methods/messages_sendMedia.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|EXTERNAL_URL_INVALID|External URL invalid|
-|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MEDIA_CAPTION_TOO_LONG|The caption is too long|
-|MEDIA_EMPTY|The provided media object is invalid|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
-|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
-|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
-|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|EXTERNAL_URL_INVALID|External URL invalid|
+|400|FILE_PART_LENGTH_INVALID|The length of a file part is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MEDIA_CAPTION_TOO_LONG|The caption is too long|
+|400|MEDIA_EMPTY|The provided media object is invalid|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+|400|PHOTO_INVALID_DIMENSIONS|The photo dimensions are invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
+|400|WEBPAGE_MEDIA_EMPTY|Webpage media empty|
+|403|CHAT_SEND_MEDIA_FORBIDDEN|You can't send media in this chat|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v97/methods/messages_sendMessage.md b/old_docs/API_docs_v97/methods/messages_sendMessage.md
index 5641ebc3..e0ab305d 100644
--- a/old_docs/API_docs_v97/methods/messages_sendMessage.md
+++ b/old_docs/API_docs_v97/methods/messages_sendMessage.md
@@ -99,31 +99,31 @@ You can also use normal markdown, note that to create mentions you must use the
```
MadelineProto supports all html entities supported by [html_entity_decode](http://php.net/manual/en/function.html-entity-decode.php).
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
-|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
-|INPUT_USER_DEACTIVATED|The specified user was deleted|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|YOU_BLOCKED_USER|You blocked this user|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|CHAT_RESTRICTED|You can't send messages in this chat, you were restricted|
+|400|ENTITY_MENTION_USER_INVALID|You mentioned an invalid user|
+|400|INPUT_USER_DEACTIVATED|The specified user was deleted|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|MSG_ID_INVALID|Provided reply_to_msg_id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|400|YOU_BLOCKED_USER|You blocked this user|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v97/methods/messages_sendMultiMedia.md b/old_docs/API_docs_v97/methods/messages_sendMultiMedia.md
index 9ebdcb88..5684a6d2 100644
--- a/old_docs/API_docs_v97/methods/messages_sendMultiMedia.md
+++ b/old_docs/API_docs_v97/methods/messages_sendMultiMedia.md
@@ -47,11 +47,11 @@ Or, if you're into Lua:
Updates = messages.sendMultiMedia({silent=Bool, background=Bool, clear_draft=Bool, peer=InputPeer, reply_to_msg_id=int, multi_media={InputSingleMedia}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_sendScreenshotNotification.md b/old_docs/API_docs_v97/methods/messages_sendScreenshotNotification.md
index 3f5bb36d..4e4e40f5 100644
--- a/old_docs/API_docs_v97/methods/messages_sendScreenshotNotification.md
+++ b/old_docs/API_docs_v97/methods/messages_sendScreenshotNotification.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Updates = messages.sendScreenshotNotification({peer=InputPeer, reply_to_msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_setBotCallbackAnswer.md b/old_docs/API_docs_v97/methods/messages_setBotCallbackAnswer.md
index ed058b4f..630ca61c 100644
--- a/old_docs/API_docs_v97/methods/messages_setBotCallbackAnswer.md
+++ b/old_docs/API_docs_v97/methods/messages_setBotCallbackAnswer.md
@@ -52,11 +52,11 @@ Bool = messages.setBotCallbackAnswer({alert=Bool, query_id=long, message='string
If the length of the provided message is bigger than 4096, the message will be split in chunks and the method will be called multiple times, with the same parameters (except for the message), and an array of [Bool](../types/Bool.md) will be returned instead.
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
-|URL_INVALID|Invalid URL provided|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|URL_INVALID|Invalid URL provided|
diff --git a/old_docs/API_docs_v97/methods/messages_setBotPrecheckoutResults.md b/old_docs/API_docs_v97/methods/messages_setBotPrecheckoutResults.md
index cc615123..d6e0e61b 100644
--- a/old_docs/API_docs_v97/methods/messages_setBotPrecheckoutResults.md
+++ b/old_docs/API_docs_v97/methods/messages_setBotPrecheckoutResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotPrecheckoutResults({success=Bool, query_id=long, error='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ERROR_TEXT_EMPTY|The provided error message is empty|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ERROR_TEXT_EMPTY|The provided error message is empty|
diff --git a/old_docs/API_docs_v97/methods/messages_setBotShippingResults.md b/old_docs/API_docs_v97/methods/messages_setBotShippingResults.md
index f3a86f4f..adc4f64f 100644
--- a/old_docs/API_docs_v97/methods/messages_setBotShippingResults.md
+++ b/old_docs/API_docs_v97/methods/messages_setBotShippingResults.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
Bool = messages.setBotShippingResults({query_id=long, error='string', shipping_options={ShippingOption}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|QUERY_ID_INVALID|The query ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|QUERY_ID_INVALID|The query ID is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_setEncryptedTyping.md b/old_docs/API_docs_v97/methods/messages_setEncryptedTyping.md
index 6299302f..509e1ddf 100644
--- a/old_docs/API_docs_v97/methods/messages_setEncryptedTyping.md
+++ b/old_docs/API_docs_v97/methods/messages_setEncryptedTyping.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.setEncryptedTyping({peer=InputEncryptedChat, typing=Bool, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHAT_ID_INVALID|The provided chat id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_setGameScore.md b/old_docs/API_docs_v97/methods/messages_setGameScore.md
index 548ee889..429b04c6 100644
--- a/old_docs/API_docs_v97/methods/messages_setGameScore.md
+++ b/old_docs/API_docs_v97/methods/messages_setGameScore.md
@@ -47,12 +47,12 @@ Or, if you're into Lua:
Updates = messages.setGameScore({edit_message=Bool, force=Bool, peer=InputPeer, id=int, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v97/methods/messages_setInlineBotResults.md b/old_docs/API_docs_v97/methods/messages_setInlineBotResults.md
index ab388e39..df4c30d4 100644
--- a/old_docs/API_docs_v97/methods/messages_setInlineBotResults.md
+++ b/old_docs/API_docs_v97/methods/messages_setInlineBotResults.md
@@ -48,23 +48,23 @@ Or, if you're into Lua:
Bool = messages.setInlineBotResults({gallery=Bool, private=Bool, query_id=long, results={InputBotInlineResult}, cache_time=int, next_offset='string', switch_pm=InlineBotSwitchPM, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|ARTICLE_TITLE_EMPTY|The title of the article is empty|
-|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
-|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
-|BUTTON_URL_INVALID|Button URL invalid|
-|MESSAGE_EMPTY|The provided message is empty|
-|MESSAGE_TOO_LONG|The provided message is too long|
-|PHOTO_INVALID|Photo invalid|
-|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
-|QUERY_ID_INVALID|The query ID is invalid|
-|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
-|RESULT_TYPE_INVALID|Result type invalid|
-|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
-|START_PARAM_INVALID|Start parameter invalid|
-|USER_BOT_INVALID|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|ARTICLE_TITLE_EMPTY|The title of the article is empty|
+|400|BUTTON_DATA_INVALID|The data of one or more of the buttons you provided is invalid|
+|400|BUTTON_TYPE_INVALID|The type of one or more of the buttons you provided is invalid|
+|400|BUTTON_URL_INVALID|Button URL invalid|
+|400|MESSAGE_EMPTY|The provided message is empty|
+|400|MESSAGE_TOO_LONG|The provided message is too long|
+|400|PHOTO_INVALID|Photo invalid|
+|400|PHOTO_THUMB_URL_EMPTY|Photo thumbnail URL is empty|
+|400|QUERY_ID_INVALID|The query ID is invalid|
+|400|REPLY_MARKUP_INVALID|The provided reply markup is invalid|
+|400|RESULT_TYPE_INVALID|Result type invalid|
+|400|SEND_MESSAGE_TYPE_INVALID|The message type is invalid|
+|400|START_PARAM_INVALID|Start parameter invalid|
+|403|USER_BOT_INVALID|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v97/methods/messages_setInlineGameScore.md b/old_docs/API_docs_v97/methods/messages_setInlineGameScore.md
index 5eeb1540..62b163d5 100644
--- a/old_docs/API_docs_v97/methods/messages_setInlineGameScore.md
+++ b/old_docs/API_docs_v97/methods/messages_setInlineGameScore.md
@@ -46,11 +46,11 @@ Or, if you're into Lua:
Bool = messages.setInlineGameScore({edit_message=Bool, force=Bool, id=InputBotInlineMessageID, user_id=InputUser, score=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
-|USER_BOT_REQUIRED|This method can only be called by a bot|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
+|400|USER_BOT_REQUIRED|This method can only be called by a bot|
diff --git a/old_docs/API_docs_v97/methods/messages_setTyping.md b/old_docs/API_docs_v97/methods/messages_setTyping.md
index d28ec83a..315908f9 100644
--- a/old_docs/API_docs_v97/methods/messages_setTyping.md
+++ b/old_docs/API_docs_v97/methods/messages_setTyping.md
@@ -43,18 +43,18 @@ Or, if you're into Lua:
Bool = messages.setTyping({peer=InputPeer, action=SendMessageAction, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CHANNEL_INVALID|The provided channel is invalid|
-|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
-|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
-|CHAT_ID_INVALID|The provided chat id is invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
-|USER_IS_BLOCKED|You were blocked by this user|
-|USER_IS_BOT|Bots can't send messages to other bots|
-|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|CHAT_ADMIN_REQUIRED|You must be an admin in this chat to do this|
+|400|CHAT_ID_INVALID|The provided chat id is invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|USER_BANNED_IN_CHANNEL|You're banned from sending messages in supergroups/channels|
+|400|USER_IS_BLOCKED|You were blocked by this user|
+|400|USER_IS_BOT|Bots can't send messages to other bots|
+|403|CHAT_WRITE_FORBIDDEN|You can't write in this chat|
diff --git a/old_docs/API_docs_v97/methods/messages_startBot.md b/old_docs/API_docs_v97/methods/messages_startBot.md
index aa2b2d00..4bf12aa6 100644
--- a/old_docs/API_docs_v97/methods/messages_startBot.md
+++ b/old_docs/API_docs_v97/methods/messages_startBot.md
@@ -44,13 +44,13 @@ Or, if you're into Lua:
Updates = messages.startBot({bot=InputUser, peer=InputPeer, start_param='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_INVALID|This is not a valid bot|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|START_PARAM_EMPTY|The start parameter is empty|
-|START_PARAM_INVALID|Start parameter invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_INVALID|This is not a valid bot|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|START_PARAM_EMPTY|The start parameter is empty|
+|400|START_PARAM_INVALID|Start parameter invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_toggleDialogPin.md b/old_docs/API_docs_v97/methods/messages_toggleDialogPin.md
index 22c6d15d..ff46ef21 100644
--- a/old_docs/API_docs_v97/methods/messages_toggleDialogPin.md
+++ b/old_docs/API_docs_v97/methods/messages_toggleDialogPin.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = messages.toggleDialogPin({pinned=Bool, peer=InputDialogPeer, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_uninstallStickerSet.md b/old_docs/API_docs_v97/methods/messages_uninstallStickerSet.md
index 59abc510..6b7a2006 100644
--- a/old_docs/API_docs_v97/methods/messages_uninstallStickerSet.md
+++ b/old_docs/API_docs_v97/methods/messages_uninstallStickerSet.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
Bool = messages.uninstallStickerSet({stickerset=InputStickerSet, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v97/methods/messages_uploadMedia.md b/old_docs/API_docs_v97/methods/messages_uploadMedia.md
index afc806fe..09fc074c 100644
--- a/old_docs/API_docs_v97/methods/messages_uploadMedia.md
+++ b/old_docs/API_docs_v97/methods/messages_uploadMedia.md
@@ -43,12 +43,12 @@ Or, if you're into Lua:
MessageMedia = messages.uploadMedia({peer=InputPeer, media=InputMedia, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|MEDIA_INVALID|Media invalid|
-|PEER_ID_INVALID|The provided peer id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|MEDIA_INVALID|Media invalid|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
diff --git a/old_docs/API_docs_v97/methods/payments_getPaymentForm.md b/old_docs/API_docs_v97/methods/payments_getPaymentForm.md
index e8e04f37..4c28121f 100644
--- a/old_docs/API_docs_v97/methods/payments_getPaymentForm.md
+++ b/old_docs/API_docs_v97/methods/payments_getPaymentForm.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentForm = payments.getPaymentForm({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v97/methods/payments_getPaymentReceipt.md b/old_docs/API_docs_v97/methods/payments_getPaymentReceipt.md
index acb1c209..0e2f76a8 100644
--- a/old_docs/API_docs_v97/methods/payments_getPaymentReceipt.md
+++ b/old_docs/API_docs_v97/methods/payments_getPaymentReceipt.md
@@ -42,10 +42,10 @@ Or, if you're into Lua:
payments_PaymentReceipt = payments.getPaymentReceipt({msg_id=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v97/methods/payments_sendPaymentForm.md b/old_docs/API_docs_v97/methods/payments_sendPaymentForm.md
index b8fa905d..1910ede8 100644
--- a/old_docs/API_docs_v97/methods/payments_sendPaymentForm.md
+++ b/old_docs/API_docs_v97/methods/payments_sendPaymentForm.md
@@ -45,10 +45,10 @@ Or, if you're into Lua:
payments_PaymentResult = payments.sendPaymentForm({msg_id=int, requested_info_id='string', shipping_option_id='string', credentials=InputPaymentCredentials, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v97/methods/payments_validateRequestedInfo.md b/old_docs/API_docs_v97/methods/payments_validateRequestedInfo.md
index 3b9da7e6..f18e1660 100644
--- a/old_docs/API_docs_v97/methods/payments_validateRequestedInfo.md
+++ b/old_docs/API_docs_v97/methods/payments_validateRequestedInfo.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
payments_ValidatedRequestedInfo = payments.validateRequestedInfo({save=Bool, msg_id=int, info=PaymentRequestedInfo, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MESSAGE_ID_INVALID|The provided message id is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MESSAGE_ID_INVALID|The provided message id is invalid|
diff --git a/old_docs/API_docs_v97/methods/phone_acceptCall.md b/old_docs/API_docs_v97/methods/phone_acceptCall.md
index b75ac65b..f5c58f01 100644
--- a/old_docs/API_docs_v97/methods/phone_acceptCall.md
+++ b/old_docs/API_docs_v97/methods/phone_acceptCall.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_b|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->acceptCall(['peer' => InputPhoneCall, 'g_b' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.acceptCall({peer=InputPhoneCall, g_b='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
diff --git a/old_docs/API_docs_v97/methods/phone_confirmCall.md b/old_docs/API_docs_v97/methods/phone_confirmCall.md
index 1a75563d..468307cc 100644
--- a/old_docs/API_docs_v97/methods/phone_confirmCall.md
+++ b/old_docs/API_docs_v97/methods/phone_confirmCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|g\_a|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|key\_fingerprint|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->confirmCall(['peer' => InputPhoneCall, 'g_a' => 'bytes', 'key_fingerprint' => long, 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.confirmCall({peer=InputPhoneCall, g_a='bytes', key_fingerprint=long, protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v97/methods/phone_discardCall.md b/old_docs/API_docs_v97/methods/phone_discardCall.md
index e50456eb..ffaa18ea 100644
--- a/old_docs/API_docs_v97/methods/phone_discardCall.md
+++ b/old_docs/API_docs_v97/methods/phone_discardCall.md
@@ -7,8 +7,49 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|peer|[InputPhoneCall](../types/InputPhoneCall.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|duration|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|reason|[PhoneCallDiscardReason](../types/PhoneCallDiscardReason.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|connection\_id|[long](../types/long.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [Updates](../types/Updates.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Updates = $MadelineProto->phone->discardCall(['peer' => InputPhoneCall, 'duration' => int, 'reason' => PhoneCallDiscardReason, 'connection_id' => long, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Updates = phone.discardCall({peer=InputPhoneCall, duration=int, reason=PhoneCallDiscardReason, connection_id=long, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_ACCEPTED|The call was already accepted|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v97/methods/phone_receivedCall.md b/old_docs/API_docs_v97/methods/phone_receivedCall.md
index c43bc8ac..6091424b 100644
--- a/old_docs/API_docs_v97/methods/phone_receivedCall.md
+++ b/old_docs/API_docs_v97/methods/phone_receivedCall.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
Bool = phone.receivedCall({peer=InputPhoneCall, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_ALREADY_DECLINED|The call was already declined|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_ALREADY_DECLINED|The call was already declined|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v97/methods/phone_requestCall.md b/old_docs/API_docs_v97/methods/phone_requestCall.md
index 9b8df564..c8e828f2 100644
--- a/old_docs/API_docs_v97/methods/phone_requestCall.md
+++ b/old_docs/API_docs_v97/methods/phone_requestCall.md
@@ -7,8 +7,51 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls**
+You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|user\_id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Optional|
+|g\_a\_hash|[bytes](../types/bytes.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+|protocol|[PhoneCallProtocol](../types/PhoneCallProtocol.md) | You cannot use this method directly, see https://docs.madelineproto.xyz#calls for more info on handling calls | Yes|
+### Return type: [phone\_PhoneCall](../types/phone_PhoneCall.md)
+
+### Can bots use this method: **NO**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$phone_PhoneCall = $MadelineProto->phone->requestCall(['user_id' => InputUser, 'g_a_hash' => 'bytes', 'protocol' => PhoneCallProtocol, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+phone_PhoneCall = phone.requestCall({user_id=InputUser, g_a_hash='bytes', protocol=PhoneCallProtocol, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PROTOCOL_FLAGS_INVALID|Call protocol flags invalid|
+|400|PARTICIPANT_VERSION_OUTDATED|The other participant does not use an up to date telegram client with support for calls|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|403|USER_IS_BLOCKED|You were blocked by this user|
+|403|USER_PRIVACY_RESTRICTED|The user's privacy settings do not allow you to do this|
diff --git a/old_docs/API_docs_v97/methods/phone_saveCallDebug.md b/old_docs/API_docs_v97/methods/phone_saveCallDebug.md
index 8acbc353..1e793c05 100644
--- a/old_docs/API_docs_v97/methods/phone_saveCallDebug.md
+++ b/old_docs/API_docs_v97/methods/phone_saveCallDebug.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
Bool = phone.saveCallDebug({peer=InputPhoneCall, debug=DataJSON, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
-|DATA_JSON_INVALID|The provided JSON data is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
+|400|DATA_JSON_INVALID|The provided JSON data is invalid|
diff --git a/old_docs/API_docs_v97/methods/phone_setCallRating.md b/old_docs/API_docs_v97/methods/phone_setCallRating.md
index 5977c943..df40c478 100644
--- a/old_docs/API_docs_v97/methods/phone_setCallRating.md
+++ b/old_docs/API_docs_v97/methods/phone_setCallRating.md
@@ -45,10 +45,10 @@ Or, if you're into Lua:
Updates = phone.setCallRating({user_initiative=Bool, peer=InputPhoneCall, rating=int, comment='string', })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|CALL_PEER_INVALID|The provided call peer object is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CALL_PEER_INVALID|The provided call peer object is invalid|
diff --git a/old_docs/API_docs_v97/methods/photos_getUserPhotos.md b/old_docs/API_docs_v97/methods/photos_getUserPhotos.md
index 57f5772b..a01f3180 100644
--- a/old_docs/API_docs_v97/methods/photos_getUserPhotos.md
+++ b/old_docs/API_docs_v97/methods/photos_getUserPhotos.md
@@ -45,11 +45,11 @@ Or, if you're into Lua:
photos_Photos = photos.getUserPhotos({user_id=InputUser, offset=int, max_id=long, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|MAX_ID_INVALID|The provided max ID is invalid|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|MAX_ID_INVALID|The provided max ID is invalid|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v97/methods/photos_updateProfilePhoto.md b/old_docs/API_docs_v97/methods/photos_updateProfilePhoto.md
index cca2fe30..f7c91ec6 100644
--- a/old_docs/API_docs_v97/methods/photos_updateProfilePhoto.md
+++ b/old_docs/API_docs_v97/methods/photos_updateProfilePhoto.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
UserProfilePhoto = photos.updateProfilePhoto({id=InputPhoto, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
diff --git a/old_docs/API_docs_v97/methods/photos_uploadProfilePhoto.md b/old_docs/API_docs_v97/methods/photos_uploadProfilePhoto.md
index 457bade8..badde2de 100644
--- a/old_docs/API_docs_v97/methods/photos_uploadProfilePhoto.md
+++ b/old_docs/API_docs_v97/methods/photos_uploadProfilePhoto.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
photos_Photo = photos.uploadProfilePhoto({file=InputFile, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|FILE_PARTS_INVALID|The number of file parts is invalid|
-|IMAGE_PROCESS_FAILED|Failure while processing image|
-|PHOTO_CROP_SIZE_SMALL|Photo is too small|
-|PHOTO_EXT_INVALID|The extension of the photo is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|400|IMAGE_PROCESS_FAILED|Failure while processing image|
+|400|PHOTO_CROP_SIZE_SMALL|Photo is too small|
+|400|PHOTO_EXT_INVALID|The extension of the photo is invalid|
diff --git a/old_docs/API_docs_v97/methods/stickers_addStickerToSet.md b/old_docs/API_docs_v97/methods/stickers_addStickerToSet.md
index 78e8437c..b1fa2aad 100644
--- a/old_docs/API_docs_v97/methods/stickers_addStickerToSet.md
+++ b/old_docs/API_docs_v97/methods/stickers_addStickerToSet.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.addStickerToSet({stickerset=InputStickerSet, sticker=InputStickerSetItem, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKERSET_INVALID|The provided sticker set is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKERSET_INVALID|The provided sticker set is invalid|
diff --git a/old_docs/API_docs_v97/methods/stickers_changeStickerPosition.md b/old_docs/API_docs_v97/methods/stickers_changeStickerPosition.md
index cddc1cbb..98dde67e 100644
--- a/old_docs/API_docs_v97/methods/stickers_changeStickerPosition.md
+++ b/old_docs/API_docs_v97/methods/stickers_changeStickerPosition.md
@@ -43,11 +43,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.changeStickerPosition({sticker=InputDocument, position=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/old_docs/API_docs_v97/methods/stickers_createStickerSet.md b/old_docs/API_docs_v97/methods/stickers_createStickerSet.md
index 41e4ad11..741e0ad6 100644
--- a/old_docs/API_docs_v97/methods/stickers_createStickerSet.md
+++ b/old_docs/API_docs_v97/methods/stickers_createStickerSet.md
@@ -46,18 +46,18 @@ Or, if you're into Lua:
messages_StickerSet = stickers.createStickerSet({masks=Bool, user_id=InputUser, title='string', short_name='string', stickers={InputStickerSetItem}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|PACK_SHORT_NAME_INVALID|Short pack name invalid|
-|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
-|PEER_ID_INVALID|The provided peer id is invalid|
-|STICKER_EMOJI_INVALID|Sticker emoji invalid|
-|STICKER_FILE_INVALID|Sticker file invalid|
-|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
-|STICKERS_EMPTY|No sticker provided|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|PACK_SHORT_NAME_INVALID|Short pack name invalid|
+|400|PACK_SHORT_NAME_OCCUPIED|A stickerpack with this name already exists|
+|400|PEER_ID_INVALID|The provided peer id is invalid|
+|400|STICKER_EMOJI_INVALID|Sticker emoji invalid|
+|400|STICKER_FILE_INVALID|Sticker file invalid|
+|400|STICKER_PNG_DIMENSIONS|Sticker png dimensions invalid|
+|400|STICKERS_EMPTY|No sticker provided|
+|400|USER_ID_INVALID|The provided user ID is invalid|
diff --git a/old_docs/API_docs_v97/methods/stickers_removeStickerFromSet.md b/old_docs/API_docs_v97/methods/stickers_removeStickerFromSet.md
index ea4621f2..d1fc4339 100644
--- a/old_docs/API_docs_v97/methods/stickers_removeStickerFromSet.md
+++ b/old_docs/API_docs_v97/methods/stickers_removeStickerFromSet.md
@@ -42,11 +42,11 @@ Or, if you're into Lua:
messages_StickerSet = stickers.removeStickerFromSet({sticker=InputDocument, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|BOT_MISSING|This method can only be run by a bot|
-|STICKER_INVALID|The provided sticker is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|BOT_MISSING|This method can only be run by a bot|
+|400|STICKER_INVALID|The provided sticker is invalid|
diff --git a/old_docs/API_docs_v97/methods/updates_getChannelDifference.md b/old_docs/API_docs_v97/methods/updates_getChannelDifference.md
index 6fa79529..9735c14a 100644
--- a/old_docs/API_docs_v97/methods/updates_getChannelDifference.md
+++ b/old_docs/API_docs_v97/methods/updates_getChannelDifference.md
@@ -7,8 +7,56 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|force|[Bool](../types/Bool.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|channel|[Username, chat ID, Update, Message or InputChannel](../types/InputChannel.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|filter|[ChannelMessagesFilter](../types/ChannelMessagesFilter.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_ChannelDifference](../types/updates_ChannelDifference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_ChannelDifference = $MadelineProto->updates->getChannelDifference(['force' => Bool, 'channel' => InputChannel, 'filter' => ChannelMessagesFilter, 'pts' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_ChannelDifference = updates.getChannelDifference({force=Bool, channel=InputChannel, filter=ChannelMessagesFilter, pts=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CHANNEL_INVALID|The provided channel is invalid|
+|400|CHANNEL_PRIVATE|You haven't joined this channel/supergroup|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|400|RANGES_INVALID|Invalid range provided|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|403|CHANNEL_PUBLIC_GROUP_NA|channel/supergroup not available|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v97/methods/updates_getDifference.md b/old_docs/API_docs_v97/methods/updates_getDifference.md
index 33e7d7f2..bcfac4e2 100644
--- a/old_docs/API_docs_v97/methods/updates_getDifference.md
+++ b/old_docs/API_docs_v97/methods/updates_getDifference.md
@@ -7,8 +7,55 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|pts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|pts\_total\_limit|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Optional|
+|date|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+|qts|[int](../types/int.md) | You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates | Yes|
+### Return type: [updates\_Difference](../types/updates_Difference.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_Difference = $MadelineProto->updates->getDifference(['pts' => int, 'pts_total_limit' => int, 'date' => int, 'qts' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_Difference = updates.getDifference({pts=int, pts_total_limit=int, date=int, qts=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|DATE_EMPTY|Date empty|
+|400|PERSISTENT_TIMESTAMP_EMPTY|Persistent timestamp empty|
+|400|PERSISTENT_TIMESTAMP_INVALID|Persistent timestamp invalid|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v97/methods/updates_getState.md b/old_docs/API_docs_v97/methods/updates_getState.md
index f43ba440..c591408a 100644
--- a/old_docs/API_docs_v97/methods/updates_getState.md
+++ b/old_docs/API_docs_v97/methods/updates_getState.md
@@ -7,8 +7,42 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates**
+You cannot use this method directly, see https://docs.madelineproto.xyz for more info on handling updates
+### Return type: [updates\_State](../types/updates_State.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$updates_State = $MadelineProto->updates->getState();
+```
+
+Or, if you're into Lua:
+
+```lua
+updates_State = updates.getState({})
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
+
diff --git a/old_docs/API_docs_v97/methods/upload_getCdnFile.md b/old_docs/API_docs_v97/methods/upload_getCdnFile.md
index 5e5b3f43..be9ad311 100644
--- a/old_docs/API_docs_v97/methods/upload_getCdnFile.md
+++ b/old_docs/API_docs_v97/methods/upload_getCdnFile.md
@@ -7,8 +7,40 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_CdnFile](../types/upload_CdnFile.md)
+
+### Can bots use this method: **NO**
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_CdnFile = $MadelineProto->upload->getCdnFile(['file_token' => 'bytes', 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_CdnFile = upload.getCdnFile({file_token='bytes', offset=int, limit=int, })
+```
+
diff --git a/old_docs/API_docs_v97/methods/upload_getCdnFileHashes.md b/old_docs/API_docs_v97/methods/upload_getCdnFileHashes.md
index ea6a8e75..d957578e 100644
--- a/old_docs/API_docs_v97/methods/upload_getCdnFileHashes.md
+++ b/old_docs/API_docs_v97/methods/upload_getCdnFileHashes.md
@@ -7,8 +7,47 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->getCdnFileHashes(['file_token' => 'bytes', 'offset' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.getCdnFileHashes({file_token='bytes', offset=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|CDN_METHOD_INVALID|You can't call this method in a CDN DC|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/old_docs/API_docs_v97/methods/upload_getFile.md b/old_docs/API_docs_v97/methods/upload_getFile.md
index c72e6090..d8b433d6 100644
--- a/old_docs/API_docs_v97/methods/upload_getFile.md
+++ b/old_docs/API_docs_v97/methods/upload_getFile.md
@@ -7,8 +7,53 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|offset|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|limit|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [upload\_File](../types/upload_File.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$upload_File = $MadelineProto->upload->getFile(['location' => InputFileLocation, 'offset' => int, 'limit' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+upload_File = upload.getFile({location=InputFileLocation, offset=int, limit=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_ID_INVALID|The provided file id is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|400|LIMIT_INVALID|The provided limit is invalid|
+|400|LOCATION_INVALID|The provided location is invalid|
+|400|OFFSET_INVALID|The provided offset is invalid|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v97/methods/upload_getFileHashes.md b/old_docs/API_docs_v97/methods/upload_getFileHashes.md
index debeb60d..e03dd5c5 100644
--- a/old_docs/API_docs_v97/methods/upload_getFileHashes.md
+++ b/old_docs/API_docs_v97/methods/upload_getFileHashes.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+Get file hashes
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|location|[InputFileLocation](../types/InputFileLocation.md) | The file | Yes|
+|offset|[int](../types/int.md) | Offset | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->getFileHashes(['location' => InputFileLocation, 'offset' => int, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.getFileHashes({location=InputFileLocation, offset=int, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LOCATION_INVALID|The provided location is invalid|
diff --git a/old_docs/API_docs_v97/methods/upload_getWebFile.md b/old_docs/API_docs_v97/methods/upload_getWebFile.md
index 21179a66..7b63f96c 100644
--- a/old_docs/API_docs_v97/methods/upload_getWebFile.md
+++ b/old_docs/API_docs_v97/methods/upload_getWebFile.md
@@ -44,10 +44,10 @@ Or, if you're into Lua:
upload_WebFile = upload.getWebFile({location=InputWebFileLocation, offset=int, limit=int, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|LOCATION_INVALID|The provided location is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|LOCATION_INVALID|The provided location is invalid|
diff --git a/old_docs/API_docs_v97/methods/upload_reuploadCdnFile.md b/old_docs/API_docs_v97/methods/upload_reuploadCdnFile.md
index cc20d5e3..f531557c 100644
--- a/old_docs/API_docs_v97/methods/upload_reuploadCdnFile.md
+++ b/old_docs/API_docs_v97/methods/upload_reuploadCdnFile.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|request\_token|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Vector\_of\_FileHash](../types/FileHash.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Vector_of_FileHash = $MadelineProto->upload->reuploadCdnFile(['file_token' => 'bytes', 'request_token' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Vector_of_FileHash = upload.reuploadCdnFile({file_token='bytes', request_token='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|RSA_DECRYPT_FAILED|Internal RSA decryption failed|
diff --git a/old_docs/API_docs_v97/methods/upload_saveBigFilePart.md b/old_docs/API_docs_v97/methods/upload_saveBigFilePart.md
index 91659f4f..9fab7eec 100644
--- a/old_docs/API_docs_v97/methods/upload_saveBigFilePart.md
+++ b/old_docs/API_docs_v97/methods/upload_saveBigFilePart.md
@@ -7,8 +7,52 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_total\_parts|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveBigFilePart(['file_id' => long, 'file_part' => int, 'file_total_parts' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveBigFilePart({file_id=long, file_part=int, file_total_parts=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|FILE_PART_SIZE_INVALID|The provided file part size is invalid|
+|400|FILE_PARTS_INVALID|The number of file parts is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v97/methods/upload_saveFilePart.md b/old_docs/API_docs_v97/methods/upload_saveFilePart.md
index f37bcaaf..9d88df59 100644
--- a/old_docs/API_docs_v97/methods/upload_saveFilePart.md
+++ b/old_docs/API_docs_v97/methods/upload_saveFilePart.md
@@ -7,8 +7,50 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info**
+You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|file\_id|[long](../types/long.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|file\_part|[int](../types/int.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+|bytes|[bytes](../types/bytes.md) | You cannot use this method directly, use the upload, download_to_stream, download_to_file, download_to_dir methods instead; see https://docs.madelineproto.xyz for more info | Yes|
+### Return type: [Bool](../types/Bool.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$Bool = $MadelineProto->upload->saveFilePart(['file_id' => long, 'file_part' => int, 'bytes' => 'bytes', ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+Bool = upload.saveFilePart({file_id=long, file_part=int, bytes='bytes', })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|FILE_PART_EMPTY|The provided file part is empty|
+|400|FILE_PART_INVALID|The file part number is invalid|
+|400|INPUT_FETCH_FAIL|Failed deserializing TL payload|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
diff --git a/old_docs/API_docs_v97/methods/users_getFullUser.md b/old_docs/API_docs_v97/methods/users_getFullUser.md
index 4bee704c..6cba8241 100644
--- a/old_docs/API_docs_v97/methods/users_getFullUser.md
+++ b/old_docs/API_docs_v97/methods/users_getFullUser.md
@@ -7,8 +7,46 @@ image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
[Back to methods index](index.md)
-**You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)**
+You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info)
+
+### Parameters:
+
+| Name | Type | Description | Required |
+|----------|---------------|-------------|----------|
+|id|[Username, chat ID, Update, Message or InputUser](../types/InputUser.md) | You cannot use this method directly, use the get_pwr_chat, get_info, get_full_info methods instead (see https://docs.madelineproto.xyz for more info) | Optional|
+### Return type: [UserFull](../types/UserFull.md)
+
+### Can bots use this method: **YES**
+
+
+### MadelineProto Example ([now async for huge speed and parallelism!](https://docs.madelineproto.xyz/docs/ASYNC.html)):
+
+
+```php
+if (!file_exists('madeline.php')) {
+ copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
+}
+include 'madeline.php';
+
+$MadelineProto = new \danog\MadelineProto\API('session.madeline');
+$MadelineProto->start();
+
+$UserFull = $MadelineProto->users->getFullUser(['id' => InputUser, ]);
+```
+
+Or, if you're into Lua:
+
+```lua
+UserFull = users.getFullUser({id=InputUser, })
+```
+
+### Errors
+
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v97/methods/users_getUsers.md b/old_docs/API_docs_v97/methods/users_getUsers.md
index 94886742..7ae0ec69 100644
--- a/old_docs/API_docs_v97/methods/users_getUsers.md
+++ b/old_docs/API_docs_v97/methods/users_getUsers.md
@@ -42,13 +42,13 @@ Or, if you're into Lua:
Vector_of_User = users.getUsers({id={InputUser}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
-|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
-|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
-|Timeout|Timeout while fetching data|
+| Code | Type | Description |
+|------|----------|---------------|
+|406|AUTH_KEY_DUPLICATED|An auth key with the same ID was already generated|
+|401|AUTH_KEY_PERM_EMPTY|The temporary auth key must be binded to the permanent auth key to use these methods.|
+|401|SESSION_PASSWORD_NEEDED|2FA is enabled, use a password to login|
+|-503|Timeout|Timeout while fetching data|
diff --git a/old_docs/API_docs_v97/methods/users_setSecureValueErrors.md b/old_docs/API_docs_v97/methods/users_setSecureValueErrors.md
index 40e398ab..661137fb 100644
--- a/old_docs/API_docs_v97/methods/users_setSecureValueErrors.md
+++ b/old_docs/API_docs_v97/methods/users_setSecureValueErrors.md
@@ -43,10 +43,10 @@ Or, if you're into Lua:
Bool = users.setSecureValueErrors({id=InputUser, errors={SecureValueError}, })
```
-### Errors this method can return:
+### Errors
-| Error | Description |
-|----------|---------------|
-|USER_ID_INVALID|The provided user ID is invalid|
+| Code | Type | Description |
+|------|----------|---------------|
+|400|USER_ID_INVALID|The provided user ID is invalid|